二进制负数补码转为十进制

问题描述:

二进制负数补码转为十进制
还有意义吗?
如-59 原码是 1011 1011
补码是 1100 0101 这不就是十进制-69吗?有何意义

这是用八位补码表示的,最高位表示为符号位,0代表是正数,1代表负数
-59为负数所以最高位是1
59D=111011B
所以-59D=1011 1011
反码就是将除符号位外取反
所以反码为:1100 0100
补码就是反码加1
所以反码为:1100 0101
如果已知补码求原码只需将补码再求补码就得到原码
例如已知补码
1100 0101
首先最高位为1所以为负数
反码为:1011 1010
原码为:1011 1011=-59
用补码表示时将二进制的减法运算变成加法运算,方便计算机处理数据
例如:8-5用补码表示
1000(8)
+1011(-5)
0011=3D