8位字节表示的有符号数范围是-128~127

1  计算机中数值都是按补码来存储的。

原码(原码是带符号位的):第一位表示符号位,0表示正数,1表示负数。符号位加上真值的绝对值

比如  

   0 0 0 0   0 0 0 1  表示正1   

   1 0 0 0   0 0 0 1  表示负1

反码:正数的反码就是原码, 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反(符号位不取反,数值位取反)

    0 0 0 0   0 0 0 1  表示正1   

  1 1 1 1   1 1 1 0  表示负1  

这时候就产生了一个问题,正零和负零用反码表示不一致,这样不合理

 0 0 0 0   0 0 0 0  表示正0

 1 1 1 1   1 1 1 1  表示负0

补码:正数的补码就是原码,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1(反码+1)

 0 0 0 0   0 0 0 0  表示正0

 0 0 0 0   0 0 0 0  表示负0

这样 0 0 0 0   0 0 0 0  表示零了,正零和负零统一了

 

补码的好处:

统一了0的表示

符号位也可以当作数值一样参与运算

 

八位字节,算上符号能够表示的范围是2^8=256个数。

-128 ~ 127  正好是256个数

 

补码  1 0 0 0 0  0 0 0 1  求原码  ,表示的数是 - 127 

补码 1 0 0 0 0  0 0 0 0  求原码得出来的是0 0 0 0  0 0 0 0 ,这个是0的原码 。这时,人为规定补码 1 0 0 0 0  0 0 0 0 表示的值是-128 

所以 0 0 0 0   0 0 0 0  表示零

   1 0 0 0   0 0 0 0 表示-128 

---------------------------------------------------------------------

原码和补码的相互转换

 

正数的补码与原码相同

9的补码是 0000 1001

负数的补码 ,先得到他的原码,再得到反码+1

-15   1000 1111  ===》 1111 0000   ===》  1111  0001 

 数0的补码表示是唯一的    0000  0000 

 

已知补码求原码:

如果符号位是0  ,表示是一个正数,其原码就是补码

如果符号位是1  ,表示是一个负数,其原码是 符号位不变,其余位取反后加1

补码(1111 1001) 1000 0110   ==》 (原码)1000 0111 

 

转载于:https://www.cnblogs.com/moris5013/p/9501037.html

一个字节8位二进制位,理论上可以储存的量为 2^8 即256。由于字需要进行相应的运算(+ - * / …),所以我们希望256个里面能够包含相应的负,然而二进制本身没有表示。所以,规定字节的第一个位是符号位,并且0表示,1表示。这样一来,正就能表示 2^7 即 127 ~ 0 之间的,负则能表示 - 2^7 即 -127 ~ 0 之间的字。这就对于0的存储出现了重复, “+0” 即00000000 和 “-0” 即10000000。逻辑上来说 “+0” 和 “-0”同时存在,显然不合理,存储上来说 “+0” 和 “-0” 表示一个但是占用了两个存储位,也不合理。既然0重复不合理,那么是否可以只保留一种作为0的表示,另外一种作为其他表示呢?如果可以的话,不就解决了逻辑上和存储上的问题了吗?那么到底是保留 “+0” 还是 保留 “-0” 呢?去除掉的那个“0”又表示什么呢?当前一个字节已经可以保存 127 ~ -127 (0重复) 即255个。对于额外保存的,我们当然是希望保存这个范围之外的,并且最好“接壤” 127 ~ -127这个范围,那么优先考虑 128 和 -128。我们知道,字节的存储其实是使用补码来表示的,-127的补码是 10000001,这个字 减1 刚好是 “-0” 10000000,-127 减1 等于 -128,所以这里将 “-0” 10000000 表示 -128 最合适。所以,最后一字节表示范围就是 127 ~ -128 (256个)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值