我在開始使用我的實驗時遇到了一些問題。實驗室有以下指示:枚舉類型的位操作
給定值
int input = 0b10010110
確定個人喜歡什麼運動。假設在這個輸入中不會有錯誤。從左到右,每個位置代表以下內容:足球,棒球,排球,游泳,壘球,足球,曲棍球,曲棍球。如果在那個位置有一個1,那麼這個人就喜歡那個運動。基於給定的「二進制」輸入,輸出到用戶喜歡的所有運動畫面。對於給定的二進制數,用戶喜歡足球,游泳,足球和曲棍球。
請勿製作字符數組。
確保使用枚舉數據類型。
我不知道我怎麼可以比較字符串的每個位置,以判斷它是否是1或0。一個想法我是我每次運動設置爲使用枚舉類型十個的號碼,只有其相應的位置是1
enum sport{
Football = 0010000000,
Baseball = 0001000000,
Volleyball = 0000100000,
... ,
Lacrosse = 0000000001
};
我會再移位左/右給定的值「輸入」的次數進行適當的量,只留下所指定的位置與它的原始值,並設置所有其他值爲0.對於足球:
input << 2; input >> 9; input << 7;
所以新的設定值將是0010000000
。然後我可以將整個數字進行比較。對於每一個案例我都會這樣做,但我想不出一種不同的方式來做到這一點。
我完全不在嗎?是否有一種更有效的方法來檢查每個位置的值使用位操作?感謝您提前提供任何幫助。
除了位移以外,還有一些操作符更適合檢查一位。 – chris