计算机中 8位无符号数,计算机基础,8位存储单元存贮数据的范围,急书本上说8位带符号数的数值范围是-128到正127,8位无符号数数值范围是0到255,急,这个结果是怎么计算出来的啊...

-128是10000000,八位二进制数一共有256种码,1到127,正负数只差一个最高位,0是00000000(即正0),负0,即10000000被定义为-128.

用2^8来表示无符号整数的话,全世界的理解都是0 - 255了,那么,有符号呢?用最高位表示符号,0为+,1为-,那么,正常的理解就是 -127 至 +127 了.

这就是原码了,值得一提的是,原码的弱点,有2个0,即+0和-0,还有就是,进行异号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作,最后运算结果的符号还要与大的符号相同.

于是乎,反码产生了,原因.略,反正,没过多久,反码就成为了过滤产物,也就是,后来补码出现了.

补码的知识不说述,只说有关+127和-128的.

官方的定义 [-2^(n-1),2(n-1)-1],补码的0没有正负之分.原因呢?没有一本书上有说,这也是我这么火的原因,但通过思考,google,再思考,很快找到答案:

首先,难不免干点白痴般地事情,穷举一下...

正数,原码跟补码一样

+127,0111 1111

+126,0111 1110

+125,0111 1101

+124,0111 1100

+123,0111 1011

+122,0111 1010

...

+4,0000 0100

+3,0000 0011

+2,0000 0010

+1,0000 0001

0,0000 0000 (无正负之分)

下面是负数了,值,原码,符号位不变其它取反,+1

-1,1000 0001,1111 1110,1111 1111

-2,1000 0010,1111 1101,1111 1110

-3,1000 0011,1111 1100,1111 1101

-4,1000 0100,1111 1011,1111 1100

-5,1000 0101,1111 1010,1111 1011

-6,1000 0110,1111 1001,1111 1010

-7,1000 0111,1111 1000,1111 1001

-8,1000 1000,1111 0111,1111 1000

-9,1000 1001,1111 0110,1111 0111

-10,1000 1010,1111 0101,1111 0110

-11,1000 1011,1111 0100,1111 0101

-12,1000 1100,1111 0011,1111 0100

-13,1000 1101,1111 0010,1111 0011

-14,1000 1110,1111 0001,1111 0010

-15,1000 1111,1111 0000,1111 0001

-16,1001 0000,1110 1111,1111 0000

-17,1001 0001,1110 1110,1110 1111

...

-24,1001 1000,1110 0111,1110 1000

...

-99,1110 0011,1001 1100,1110 0100

...

-124,1111 1100,1000 0011,1111 1101

-125,1111 1101,1000 0010,1000 0011

-126,1111 1110,1000 0001,1000 0010

-127,1111 1111,1000 0000,1000 0001

看出点什么了没有?

如果没有,那么,给个提示,再继续下去,下一个补码是什么呢?

当然是

-128,先略过,再略过,1000 0000

1000 0000,那么,它的原码是什么呢?

从补码求原码的方法跟原码求补码是一样的

先保留符号位其它求反:1111 1111,再加1:11000 0000,超过了8位了

对,用8位数的原码在这里已经无法表示了

关键就在这里,补码 1000 0000 为 -128 是不用怀疑的(上面的穷举),

那么,回到原码处,它的原码也是 1000 0000(超出的自动丢失),

1000 0000 在原码表示什么呢?-0,但补码却规定0没有正负之分

转换一下思路,看看计算机里,是怎么运算的:

对于负数,先取绝对值,然后求反,加一

-128 -> 128 -> 1000 0000 -> 0111 1111 -> 1000 0000

现在明确了吧.

所以,8位有符号的整数取值范围的补码表示

1000 0000 到 0000 0000,再到 0111 1111

即 -128 到 0,再到 127

最终 -128 +127

解析看不懂?求助智能家教解答查看解答

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值