https://blog.youkuaiyun.com/xtj332/article/details/6639009
https://docs.python.org/zh-cn/3/library/stdtypes.html
整数类型的按位运算
按位运算只对整数有意义。 计算按位运算的结果,就相当于使用无穷多个二进制符号位对二的补码执行操作。
二进制按位运算的优先级全都低于数字运算,但又高于比较运算;一元运算 ~ 具有与其他一元算术运算 (+ and -) 相同的优先级。
此表格是以优先级升序排序的按位运算列表:
运算
结果
注释
x | y
x 和 y 按位 或
(4)
x ^ y
x 和 y 按位 异或
(4)
x & y
x 和 y 按位 与
(4)
x << n
x 左移 n 位
(1)(2)
x >> n
x 右移 n 位
(1)(3)
~x
x 逐位取反
注释:
负的移位数是非法的,会导致引发 ValueError。
左移 n 位等价于不带溢出检测地乘以 pow(2, n)。
右移 n 位等价于不带溢出检测地除以 pow(2, n)。
使用带有至少一个额外符号扩展位的有限个二进制补码表示(有效位宽度为 1 + max(x.bit_length(), y.bit_length()) 或以上)执行这些计算就足以获得相当于有无数个符号位时的同样结果。
本文详细解析了Python中整数类型的按位运算,包括按位与、按位或、按位异或、左移、右移及逐位取反等运算符的优先级与操作方式,同时说明了其在二进制补码上的实现原理。
755

被折叠的 条评论
为什么被折叠?



