1.1 清零
與乙個各位都為零的數值想與,結果為零
123&0
// 0
1.2 判斷奇偶123&1
// 1
122&
1// 0
1.3 取乙個數的指定位
比如取數x = 1010 1110 的低4位,只需要找乙個數y,令y的低四位為1,其餘位為0,即y = 0000 1111
1010
1110
&0000
1111
//0000 1110
比如取數x = 1010 1110 的第3位,只需要找乙個數,令y的第3位為1,其餘位為0,即y = 0000 0100
1010
1110
&0000
0100
// 100
1010
1010
&0000
0100
// 0
4 將二進位制最後乙個1變成0x = x &
(x -1)
// 101 & (100) = 100
// 110 & (101) = 100
位元數題目
2.1 將乙個資料的某些位置設定為1
比如將數x = 1010 1110 的低四位 設定為 1,只需要另找乙個數y,令y的低4位為1,其餘位為0,即y = 0000 1111
1010
1110
|0000
1111
// 1010 1111
3.1 交換律
3.2 結合律a ^ b ^ c == a ^ (b ^ c)
3.3 對於任何數,都有x ^ x = 0
x ^ 0 = x
3.4 自反性a ^ b ^ b = a ^ 0 = a
4 異或運算的用途
4.1 翻轉指定位
比如將數x = 1010 1110 的低4位進行翻轉,只需要另外找乙個數y,令y的低4位為1,其餘位為0,即y = 0000 1111
1010
1110
^0000
1111
// 1010 0001
4.2 與0相異或值不變
取反運算子的優先順序大於 算數運算子、關係運算子、邏輯運算子
5.1 使x的最低為為0
x&~
1// ~1 的值為 1111 1111 1111 1110
將乙個數的各二進位制位全部左移若干位,左邊的二進位制捨棄,右邊補0
若左移時捨棄的高位不包括1,則每左移1位相當於該數乘二
將乙個數的各二進位制位全部右移若干位,右邊的二進位制捨棄,左邊正數補0,負數補1
每右移1位相當於該數除二
左邊不足的位依次補
8.1 整型資料為正數,左邊補0
8.2 整型資料為負數,左邊補1
8.3 整型資料為無符號數,左邊補0
Python位運算 與 或 異或 左移右移
與運算規則 1 1 1 0 1 0 0 0 0以1和5的與運算為例 1的二進位制為 001 5的二進位制為 101 僅最後一位都為1,所以結果為001 1 5 1或運算規則 1 1 1 1 0 1 0 0 0以4和6的或運算為例 4的二進位制為 100 6的二進位制為 110 僅最後一位都為0,所以...
位運算(與 或 異或 取反 右移 左移)
1 按位與 對兩個數進行操作,然後返回乙個新的數,這個數的每個位都需要兩個輸入數的同一位都為1時才為1,如下圖 a b 結果為 12,二進位制為 0000 1100 2 按位或 比較兩個數,然後返回乙個新的數,這個數的每一位設定1的條件是兩個輸入數的同一位都不為0 即任意乙個為1,或都為1 如下圖 ...
C語言位運算子 與 或 異或 取反 左移和右移
位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的...