为什么~2等于-3? ~
运算符如何工作?
最佳答案
请记住,负数存储为正数的补码。作为示例,以下是 -2 的二进制补码表示形式:(8 位)
1111 1110
获得此值的方法是采用数字的二进制表示形式,取其补码(反转所有位)并加一。两个以 0000 0010 开头,通过反转位我们得到 1111 1101。加一得到上面的结果。第一位是符号位,表示负数。
那么让我们看看如何得到 ~2 = -3:
这里又是两个:
0000 0010
只需翻转所有位,我们就可以得到:
1111 1101
那么,-3 在二进制补码中是什么样子?从正3开始:0000 0011,将所有位翻转为1111 1100,加一成为负值(-3),1111 1101。
因此,如果您简单地反转 2 中的位,就会得到 -3 的二进制补码表示形式。
补码运算符 (~) 只是翻转位。由机器来解释这些位。
关于python - Python 的按位求补运算符 (~ 代字号) 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/791328/