关于原码、反码、补码和移码知识点,请参照博客:http://www.fishyoung.com/post-128.html
例: -8的二进制补码计算,只需要在8的补码取反,再+1即可得到。
解:
8的补码: 0000 1000
取反: 1111 0111
+1 : 1111 1000
得到 11111000就是-8的补码。
例:已知某数在内存里的二进制是 11111000,怎知它是多少呢?
须知:
① 如果高位为0,即剩下7位即是本数 。(正数)
② 高位为1,则需先取反,再+1,便可计算出是负几 。(负数)
解:
内存中二进制数(即补码): 1111 1000
取反: 0000 0111
+1: 0000 1000 => 8
因此得到: 1111 1000 => -8
再来一个计算下: 1111 1111
取反: 0000 0000
+1: 0000 0001
可以推导出: 1111 1111 => -1
再来: 1000 0000
取反: 0111 1111
+1: 1000 0000
可以推导出: 1000 0000 => -128
故8位有符号二进制表示负数的范围为-1 ~ -128