Mig*_*uel 2 python binary integer cpu-architecture twos-complement
我们可以将变量定义为整数值,例如
x = 3
y = -2
Run Code Online (Sandbox Code Playgroud)
然后与二元运算符位进行操作&,|,^和~。问题是我们是否总是在每个架构上得到相同的结果,还是行为架构是特定的?我们可以总是假设整数的二进制补码表示吗?
Python 2.x 支持两种整数类型:int和long. int基于底层的 C long 类型和long是任意精度类型。非常早期的 Python 版本(2.2 之前),将类型视为两种独立的类型,但它们大多在 Python 2.2 中组合在一起。Python 3.x 仅使用任意精度类型。
位操作就像应用于任意精度 2 的补码一样。如果需要,在 Python 2.xint中将自动提升为 a long。
该行为跨平台是一致的。