二进制的原码、补码、反码

最近看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)

相关链接:

百度百科 补码 (解释还是很细致的)

百度百科 原码

猜你喜欢

转载自www.cnblogs.com/vaiky/p/11769899.html