只是对二进制补码的工作方式有疑问。
例如(在python中):
a = 60
print(~a)
给出一个输出:-
-61
不是
60
的二进制补码是 :a = 0011 1100
~a = 1100 0011
应该不是
-60
?我知道我错了,但为什么它向前移动到
-61
?
最佳答案
~
是一个按位取反运算符和 it acts exectly as defined :
The bitwise inversion of x is defined as -(x+1).
这就是 two's complement representation 的按位反转的简单方式一个整数的作品。
二进制补码轮很好地形象化了这一点:
如您所见,1 的按位反转是 -2,2 的按位反转是 -3,...,60 的按位反转将是 -61。
关于python-3.x - ~ Python 3 中的二进制补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55145028/