判斷奇偶,二進位制的運算,組合的遍歷......等問題都要用到位運算,所以做個小記錄。
& 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0。
| 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1。
^ 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1。
~ 取反 ~是一元運算子,用來對乙個二進位制數按位取反,即將0變1,將1變0。
<< 左移 用來將乙個數的各二進位制位全部左移n位,右補0。(相當於乘以2)
>> 右移 將乙個數的各二進位制位右移n位,移到右端的低位被捨棄,對於無符號數,高位補0。
位運算子與賦值運算子可以組成復合賦值運算子。
例如: &=, |=, >>=, <<=, ∧=
例: a & = b
相當於
a = a & b
a << =2相當於
a = a << 2
例題和**。
組合的遍歷
#include#includeintmain()
else
str[k]='.'
;//如果&1!=1就用其他的字元佔位
k++;
pl>>=1
;//下一位
}for(int j=9;j>=0;j--)
printf("\n
");}
printf("\n
");}
return0;
}
不知道自己這樣想對不對,總之是這樣的思路,如果有錯的地方歡迎斧正。
碼題:137. single number ii
簡單位運算入門
左移右移 int x x i 除以2 i,強制取整 x i 乘以2 i 求乙個數的二進位制位中第k位的值 0 or 1?lowbit函式 返回整數的最後一位二進位制對應的數 是樹狀陣列,線段樹的乙個重要組成部分 0 00000 對應0 1 00001 對應1 2 00010 對應2 3 00011 ...
二進位制簡單位運算
位運算的基本運算子有 按位與 按位或 異或 左移 右移 求反 對於異或運算子 只有不一樣時才為真 一樣的時候為假。左移右移 若將乙個數擴大2 n倍,最簡單的辦法是將該數二進位制左移n位。左移的時候右邊補0,右移的時候左邊補符號位,即左邊空出的位用0或者1填補。正數用0填補,負數用1填補。按位與 同為...
c簡單位操作
c語言中位運算子之間,按優先順序順序排列為 1 2 3 4 5 6 一 第i位替換 description 編寫程式,使得函式返回值為乙個整數,該整數的第i位和m的第i位相同,其他位和n相同。使用bitmanipulation1函式。input 第一行是整數 t,表示測試組數。每組測試資料報含一行,...