A-A+

用32位二进制补码表示整数 可以表示最大正数是231-1 绝对值最大的负数是-231。为什么

2022-08-12 13:19:05 问答库 阅读 196 次

问题详情

用32位二进制补码表示整数,可以表示最大正数是231-1,绝对值最大的负数是-231。为什么正、负数范围不对称(即为什么负整数比正整数多一个)?写出这两个数的二进制代码(用十六进制表示)。


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:因为“0”的表示唯一32位补码中用二进制数的32个0来表示“0”其中符号位为0相当于将“0”表示成了正零这样最高位为0(即正数)的32位二进制编码就只剩下231-1个数而最高位为1(即负数)的编码还有231个所以最大的正数是231-1而最小的负数是-231比正数多一个。最大的正整数231-1写成二进制代码是:7F FF FF FFH而-231是:80 00 00 00H。
因为“0”的表示唯一,32位补码中用二进制数的32个0来表示“0”,其中符号位为0,相当于将“0”表示成了正零,这样,最高位为0(即正数)的32位二进制编码就只剩下231-1个数,而最高位为1(即负数)的编码还有231个,所以最大的正数是231-1,而最小的负数是-231,比正数多一个。最大的正整数231-1写成二进制代码是:7FFFFFFFH,而-231是:80000000H。

考点:补码,表示