对于运算器来说,只有加法没有减法,因此,所有的数字都是以补码形式存储的。正数的补码等于原码,负数的补码等于反码+1,所谓反码就是逐位取反。理解了这几个概念,就很容写出上面的算式:
# 38 + 26,正数的补码等于原码
0010 0110 + 0001 1010 = 0100 0000 # 结果等于64
# -32是负数,先将32逐位取反, 再+1得到补码
0010 0000 -> 1101 1111 -> 1110 0000
# 56 - 32,前者是正数,后者是负数
0011 1000 + 1110 0000 = 0001 1000 # 结果等于24