8位二进制表示数的范围为什么是-128~127

 我来答
一面素然静吾心
2014-10-28 · 超过24用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:25.1万
展开全部
计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码
8位原码能够表示数的范围是 -127~127
8位反码能够表示数的范围是 -127~127
8位补码能够表示数的范围是 -128~127
既然范围是-128~127,那肯定是用补码表示的。
计算机没有你想象的那么聪明,能够自觉的对正数和负数进行区分和识别,所以我们人类就给他们制定了一系列规则:
我们把最高位规定为符号位,1为负,0为正;
1000 0000——1111 1111表示-128到-1, 0000 0000——0111 1111表示0-127;
例如:
已知补码1111 1111——>原码1000 0001,反码1111 1110;
负数补码——>>原码计算规则:
看到最高位为1,一个负数,
把符号位去掉,剩下0111 1111,然后减1得到0111 1110,再取反得到原码1000 0001;
负数补码——>>反码计算规则:
看到最高位为1,一个负数,反码=补码-1,所以得到反码 1111 1110;
若为0表示正数,补码=原码=反码,算都不用算的;
所以说补码就是二进制里表示负数的一种方法,对正数求原码、反码、补码没什么意义;
正数的原码反码补码是一样的.
补码的表示范围为:
(-128~0~127)共256个.
注意: (-128)没有相对应的原码和反码。-128——>(1000 0000)
摘自:http://xuyanzhi6688.blog.163.com/blog/static/2920588920119119322015/
淘气的汪星人
2019-10-15
知道答主
回答量:4
采纳率:0%
帮助的人:2894
展开全部

其实主要就是-128怎么来的不明白

在有符号二进制中,0有两种表示方法,00000000(+0)、10000000(-0)

但在数学中0是不分正负的,所以用+0来表示0,这时候-0就没有用了

多出来的不要浪费,所以人为规定他来表示-128,这是人为规定的,正常方式计算不出来

为什么要这样规定呢,也是有一定原因的

8位二进制最多表示127,再加一就溢出,成为了0,也就是127+1=0

127+1正常运算应该是128,所以就可以理解为128=0

这里就像是钟表一样,晚上12点也是0点,也就是12=0

因为00000000(+0)用来表示0了,所以10000000(-0)就可以用来表示-128(人为规定)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2021-10-23 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:646万
展开全部

8 位二进制表示数的范围为什么是 -128~127?

应该说:

8 位二进制补码,代表数字的范围是 -128~127。


其中,0 的补码是 0000 0000。

+1 的补码,就是 0000 0001。

+2 的补码,就是 0000 0010。

... ...

+127 的补码,就是 0111 1111。

---------

负数,你从 0000 0000 递减就行了。

-1 的补码,就是 0000 0000-1 = 1111 1111(=255)。

-2 的补码,就是 1111 1110(=254)。

... ...

-128 的补码,就是 1000 0000(=128)。

不能再减了。 再减,就是 0111 1111(=+127) 了。

---------

最小-128,最大+127,就是这么来的。

---------

负数补码的计算公式:256+该负数。

求补码,可用十进制计算。需要二进制,你就再转换一下。

求补码,并不需要原码反码,计算机中,也不保存原码反码。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式