请问二进制负数转化成十进制为什么要减一取反

2024-11-25 05:10:26
推荐回答(1个)
回答1:

这是用八位补码表示的,最高位表示为符号位,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