问答题 用32位二进制补码表示整数,可以表示的最大正数是2驰一1,绝对值最大的负数是-2 31 。为什么正、负数范围不对称(即为什么负整数比正整数多一个)?写出这两个数的二进制代码(用十六进制表示)。
【正确答案】
【答案解析】因为“0”的表示唯一,32位补码中用二进制数的32个0来表示“0”,其中符号位为0,相当于将“0”表示成了正零,这样,最高位为0(即正数)的32位二进制编码就只剩下2 31 -1个数,而最高位为1(即负数)的编码还有2 31 个,所以最大的正数是2 31 -1,而最小的负数是-2 31 ,比正数多一个。最大的正整数2 31 -1写成二进制代码是:7FFF FF FFH,而-2 31 是:80 00 00 00H。