假定有這樣乙個問題,請從下列選項中選擇個人愛好(多選)
選項包括:
1.爬山
2.**
3.看書
4.寫作
5.唱歌
6.打遊戲
7.上網
問題:如何使用1個整數來確定使用者所選的愛好?
首先,按位或運算的結果是:
1|1=1
1|0=1
0|1=1
0|0=0
我將上面七個選項分別賦予乙個2的倍數,把這個值暫且稱為權值,即
1 1 爬山
1 2 **
3 4 看書
4 8 寫作
5 16 唱歌
6 32 打遊戲
7 64 上網
那麼,我將使用權值運用按位或來確定使用者的選項,例如現在使用者的愛好是1.爬山和3.看書,
即,愛好=爬山+看書
權值運算:權值的和=1+4=5,同按位運算。
最後,我使用單項的權值與權值的和再做按位或運算,通過運算結果即可確定使用者的愛好選項了。
按位與的小應用
x x x 1 的意義 我們知道 為 按位與 運算子,有如下性質 1 1 1 1 0 0 0 1 0 0 0 0 x x 1 就是將二進位制x的最後乙個1置為0,如2015的二進位制為11111011111,則進行一次 x x 1 運算後x的值變為11111011110,可以手動模擬一下,很簡單,所...
異或在C C 程式設計中的應用
本文主要介紹c c 程式設計中兩個巧用異或解決問題的方法。一 巧用異或進行取反運算 假設安排乙個周健身計畫表,每天的可選專案包括 running,riding,swimming。現用乙個enum表示周一到週日,如下 enum day 上述enum用二進位製上的一位,表示這一天是否有安排。不同位可以疊...
二進位制的按位與 按位或 按位異 按位取反的簡單總結
優先順序從高到低,依次為 運算子 操作 0 0 0 0 1 0 1 0 0 1 1 1 只要有乙個為0,其值為0。例子 10 9 0000 1010 0000 1001 0000 1000 8 運算子 操作0 0 0 0 1 1 1 0 1 1 1 1 只要有乙個為1,其值為1。例子 3 5 即 0...