最近看Python一道练习题:
a = 234
b = ~a
print(b) #得到-235
涉及到负数补码,所以找资料稍微研究了一番,过程如下:
[0]1110 1010 (234,[]里表示符号位)
取反后:[1]0001 0101,因为符号位是1表示负数,负数补码存储,需要取反并加1:
[1]0001 0101 ->取反加1 -> [1]1110 1011,就是-235。
总结:
正整数的补码是其二进制表示,与原码相同。
负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。(即:取反加1)
相关链接:
百度百科 补码 (解释还是很细致的)