【发布时间】:2017-09-04 23:03:37
【问题描述】:
我一直在学习如何使用位操作来添加两个数字,但我在理解 Python 中负数是如何完成的时遇到了问题。例如,如果我尝试& 以下内容:
-0b1111010 (-122) & 0b11011110 (222)
不应该是:
0b1111010
& 0b11011110
------------
0b01011010
因为只有 1 的组合结果为 1?
现在python给0b10000110
当使用python将负数添加到正数时,我找不到任何资源。
【问题讨论】:
-
-0b1111010 是 0b...10000110。
-
Python 中的负整数以2's complement 表示;对负整数的按位运算会产生相应的行为。
-
你想做什么?通常按位 & 用于逻辑运算,而不是算术运算。 -122 & 222 不会“添加”这些值。它对每一对位执行逻辑“与”操作。要添加值,您可以使用“+”。
标签: python python-3.x bit-manipulation