按位或「 」在多選中的應用

2021-05-21 17:59:53 字數 534 閱讀 4308

假定有這樣乙個問題,請從下列選項中選擇個人愛好(多選)

選項包括:

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...