有符号数的范围
Posted spacelz@126.com
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有符号数的范围相关的知识,希望对你有一定的参考价值。
范围是 -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个正整数。
https://wenku.baidu.com/view/4d9cfe8b7cd184254a353515.html
用2^8来表示无符号整数的话,全世界的理解都是0 - 255了,那么,有符号呢? 用 最高位表示符号,0 为+,1 为-,那么,正常的理解就是-127 至+127 了.
这就是原码了,值得一提的是,原码的弱点,有2 个0,即+0 和-0,还有就是,进行异 号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作,
最后运算结果的符号还要与大的符号相同.
于是乎,反码产生了,原因....略,反正,没过多久,反码就成为了过滤产物,也就是,后 来补码出现了. 补码的知识不说述,只说有关+127 和-128 的.
官方的定义[-2^(n-1),2(n-1)-1],
http://blog.csdn.net/shuzfan/article/details/77601037
在计算机中无符号数用原码表示,有符号数用补码表示。w位补码表示的值为:
最高位 也称符号位,1表示负数,0表示正数,符号位为0时,和无符号数的表示是相同的,以下是4位补码的示例:
0101 = -0*23 + 1*22 + 0*21 + 1*20 = 5
1101 = -1*23 + 1*22 + 0*21 + 1*20 = -3
w位的补码表示的数值范围是[-2w-1, 2w-1-1],如4位的补码表示的最小值是-8(1000),最大值是7(0111)。
以上是关于有符号数的范围的主要内容,如果未能解决你的问题,请参考以下文章