当我补1(~1)时,得到的输出是-2。内部是怎么做到的?
我首先假设这些位是反转的,所以0001变成1110,然后1被添加到其中,所以它变成1111,这是存储的,然后如何检索这个数字?
最佳答案
好吧,不。当你补1的时候,你只需要把这些位颠倒一下:
1 == 0b00000001
~1 == 0b11111110
这是-2的补码,这是计算机内部表示负数的方式。参见http://en.wikipedia.org/wiki/Two's_complement但以下是一些示例:
-1 == 0b11111111
-2 == 0b11111110
....
-128== 0b10000000
+127== 0b01111111
....
+2 == 0b00000010
+1 == 0b00000001
0 == 0b00000000