Python 按位运算仅对整数有意义。
二进制按位运算的优先级全都低于数值运算,但高于比较运算。
一元运算 ~ 具有如其它一元数值运算 (+ 和 -) 的相同优先级。
使用 ^ 按位异或对整数进行简单加密,然后解密:
>>> key = 3 >>> 5 ^ key 6 >>> 6 ^ key 5 >>>
运算 | 公式 | 二进制规则 | 整数范例 | 结果 | Binary | 结果 |
---|---|---|---|---|---|---|
按位或 | 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 |
See also:
Copyright Notice: This article is exclusive original manuscripts, copyrighted by Happy Digits Software , shall not be reproduced without permission.