8位有符号数的补码表示范围
2017-07-15 22:48
204 查看
范围是 -128至127. 根据补码的几条规定即可推出上述结论: 1 若二进制每位全为0,则表示数0 2 若最高位(即符号位)为0,表示正数 3 若最高位为1, 表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。 例如,二进制的 10000000 的最高位为1, 所以它表示的是负数。是负的多少呢?我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128, 故计算机中的10000000表示的是-128最高位(即符号位)为1的8位有符号数有128个,故可表示128个负数;最高位为0的8位有符号数有128个,但全0的那个表示数0,所以总共只能表示127个正整数。
最高位表示符号位吧,也即有符号的8位二进制数的补码问题.
下面一步步的说明:
最高位符号位,故后面还有7位,正数时原码和补码相同,故此时的
0表示为0000 0000;
1表示为0000 0001;
依次类推...
0111 1111即表示+(64+32+16+8+4+2+1)=+127
负数时最高位为1,负数的补码为对应的原码部分取反加1,故有:
-1即1000 0001取反后为1111 1110 再加1得补码为1111 1111;
-2即1000 0010(理解为-1的数字位加了1成了10)取反后为1111 1101再加1得补码为1111 1110;
依次类推...
-127即1111 1111取反即1000 0000再加1得补码为1000 0001
-128即1000 0000(同理可以理解为数字位加1成了000 0000)取反后为1111 1111再加1得补码1000 0000
看以上的结果,从0000 0000到1000 0000再到1111 1111全部的8位已经组合完毕,不能再有其他情况出现了,故只能表示-128~+127
相关文章推荐
- 8位有符号数的补码表示范围
- 有符号整、小数的原、反、补码表示范围,及补码比原、反码多表示一位的原因
- 假设寄存器为8位,用补码形式存储机器数,包括一位符号位,那么十进制数-25在寄存器表示为:
- 反码符号-128有8位二进制表示的原码、反码和补码
- 汇编语言三 设数组ARRAY存储多个8位无符号数据,其中第一个字用于存放数据个数,试编写程序求数组元素之和,将结果存放在AX中,若计算的和超过16位数表示的范围,则给出溢出标志DX=-1,否则D
- 为啥8位有符号数的范围为“-128 — +127”?(转载加补充)
- 如何计算一个有符号数的补码表示?
- 机械码补码,阶码的表示与范围思考总结
- 关于C中为何一个字节表示有符号数范围是[-128-127]
- 原码、反码和补码的表示范围
- 8位二进制数能表示的最小整数为什么是-128,10000000为什么是-128的补码。
- 深入理解计算机系统(2.4)------整数的表示(无符号编码和补码编码)
- 8位有符号数的取值范围
- 为什么8位有符号数的范围为“-128 — +127”?(转载加补充)
- 8位有符号的取值范围是-128~+127
- 分别写出有符号和无符号1字节,2字节,4字节所能表示的整数范围
- 为什么8位有符号数的取值范围是-128~+127
- 解读为什么有符号的char可表示范围是-128~+127
- 如何计算一个有符号数的补码表示?
- DSP芯片和所有微处理器一样,以2的补码形式表示有符号数。