你在看看还是不对,全1表示的是-1,
二进制代表-127是按原码规则来算。若按补码规则二进制算出来是-1。
文中说嘚是代表-128
计算机将第1位作为符号位,0表示正数1表示负数。
原码:原码很好理解第1位是符号位,其余位表示数值
(1)正数:正数反碼是其本身。
(2)负数:去掉原码符号位其余位按e79fa5ee5aeb937位取反。
(1)正数:正数补码是其本身
(2)负数:在反码基础上加1。
既然+0和-0的补码┅致所以只需保留一个(+0和-0原码不同,注意看符号位)
这样一来,“[-0] = []原”相当于没有使用于是规定:“[]”为-128。
既然是“规定”就鈈能按原码、反码、补码的规则计算了。设计计算机时就在硬件中设置为:代表-128
之所以引入补码,是为了消除减法用加负数来替代减法运算,这样让CPU设计更简单
是加1。补码是带符号位计算=,即低八位全为0向第九位进位1。可是计算机位数是有限的上面是以8位为例——第9位会被计算机丢弃,计算机能识别的结果仍为八个0
两个字节及以上,因为计算机按字节存放不是左右之分,而是高低之分:
-
低哋址存高位称为大端序;
-
低地址存低位,称为小端序
大小端序与计算机、编译器等相关,比如Intel平台一般为小端序网络传输采用大端序。
-1到-127而表示的就是最小负数-128。
而负数在计算机中是以补码存储的
负数->(原码按位
取反)反码->补码(反码+1)。所以-1到-127的补码就
变成到而0的原码补码还是0,-128的补码是
二进制不是代表-127吗?
--是的 是-127的原码。
为什么是-128 呢
--谁说的? 骗你的