Python 按位運算僅對整數有意義。
二進製按位運算的優先級全都低於數值運算,但高於比較運算。
一元運算 ~ 具有如其它一元數值運算 (+ 和 -) 的相同優先級。
使用 ^ 按位異或對整數進行簡單加密,然後解密:
>>> key = 3 >>> 5 ^ key 6 >>> 6 ^ key 5 >>>
運算 | 公式 | 二進製規則 | 整數範例 | 結果 | 二進製 | 結果 |
---|---|---|---|---|---|---|
按位或 | x | y | 一個 1 就為 1,否則 0 | 1 | 0 | 1 | 0b01 | 0b00 | 0b01 |
2 | 3 | 3 | 0b10 | 0b11 | 0b11 | |||
按位異或 | x ^ y | 相同為 0,不同為 1 | 1 ^ 0 | 1 | 0b01 ^ 0b00 | 0b01 |
2 ^ 3 | 1 | 0b10 ^ 0b11 | 0b01 | |||
按位與 | x & y | 同為 1,纔是 1 | 1 & 0 | 0 | 0b01 & 0b00 | 0b00 |
2 & 3 | 2 | 0b10 & 0b11 | 0b10 | |||
按位左移 | x << n | 嚮左移動 n 位後,空位補 0 | 5 << 2 | 20 | 0b101 | 0b10100 |
按位左移 | x >> n | 嚮右移動 n 位後,空位補 0 | 20 >> 2 | 5 | 0b10100 | 0b101 |
按位反轉 | ~x | 將二進製數 +1 之後乘以 -1 | ~5 | -6 | 0b101 | -0b110 |
另請參閱:
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。