1、按位與 &
0 & 0 = 0;0 & 1 = 0;1 & 0 = 0;1& 1 = 1
同時為1則結果為1,否則為0;
如3 & 8
3 = 00000011
5 = 00000101 結果為
00000001
2、按位或 ||
0|0=0; 0|1=1; 1|0=1; 1|1=1;
兩個數中只要有乙個為1,則結果為1;同時為0 則結果為0;
3、異或 ^
兩個數相同則結果為0,不同則結果為1;
0^0=0; 0^1=1; 1^0=1;1^1=0;
例如:01111010 ^
00001111 =
01110101
4、左移運算子<<
a = a << 2;
將 a 的二進位制數左移 2 位,右補 0,若 a = 15,即二進位制數 00001111,左移2位得到 00111100,即十進位制數60.
高位左移後溢位,捨棄不起作用。左移一位相當於該數乘以2。但些結論只適用於該數左移時被溢位捨棄的高位中不包含1 的情況。
注意:100<<1 是1000
5、右移運算子》
a >> 2 表示將 a 的各二進位右移 2 位。移到右端的低位被捨棄,對無符號數,高位補 0。
如 a = 017 時:
a = 00001111 >> 2
00000011
右移一位相當於除以 2 ,右移 n 位相當於除於 2^n。
在右移時,需要注意符號位問題。對無符號數,右移時左邊高位移入 0。對於有符號的值,如果原來符號位為 0 (該數為正),則左邊也是移入 0,如果上例表示的那樣,如果符號位原來為 1(該數為負),則左邊移入的 0 還是 1 ,要取決於所用的計算機系統。移入 0 稱為 邏輯右移,即簡單右移。移入 1 稱為 算術右移。
參考:詳細版位運算講解
常用位運算
檢測乙個無符號數是不為2 n 1 為冪 x x 1 將最右側0位改為1位 x x 1 二進位制補碼運算公式 x x 1 x 1 x x 1 x x 1 x x 1 x y x y 1 x y x y x y x y 1 x y x y x y x y x y x y x y y x y x y x ...
常用的位運算技巧
位運算是很多演算法優化的基礎和實現的條件,極其重要。理解位運算對於一些演算法及其優化有著非常重要的意義。本篇隨筆講解位運算的一些基本原理和常用的使用技巧。兩個二進位制數進行與 運算,如果對應位都為1則結果為1,否則為0.與運算常常用於二進位制下的取位操作。想要知道二進位制下的某位是否是1,就 上這個...
Python 運算(常用的算術運算 位運算)
運算子含義 例項 假設變數 a 10,b 20 除 x除以y b a 輸出結果 2 取模 返回除法的餘數 b a 輸出結果 0 冪 返回x的y次冪 a b 為10的20次方,輸出結果 取整除 返回商的整數部分 向下取整 9 2 4 運算子含義 按位與操作,只有 1 1 為1,其他情況為0。可用於進製...