计算机组成原理,图中第二处画波浪线的地方,补码的表示范围不应该是-2^n~2^n吗?为什么图中要-1呢?

 我来答
xgn911
2022-09-06 · TA获得超过1364个赞
知道小有建树答主
回答量:1493
采纳率:96%
帮助的人:652万
展开全部
假设整数字长为8位,最高位为符号位
对于原码来说,能表示的正数为:0000 0000 ~ 0111 1111,即0~127=2^7-1
能表示的负数为:1000 0001 ~ 1111 1111,即-1~-127
对于补码来说,能表示的正数为:0000 0000 ~ 0111 1111,即0~127
能表示的负数为:1000 0000 ~ 1111 1111,即-128~-1
由于在原码中0000 0000和1000 0000均表示整数0
而在补码中1000 0000表示-128,因此补码比原码多表示一个整数-128
但无论如何补码也表示不了128,因为128对应的二进制为 0 1111 1111,超过8位字长了
因此n+1位字长整数的补码表示范围为:-2^n~2^n-1
做而论道
高能答主

2022-12-03 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

n 位的二进制代码,可以是原码反码补码。

原码反码,在计算机中,都是不用的,也都是不存在的,不必讨论。

n 位的补码,共有 2^n 种组合。

如 n=8,则是 2^8 = 256 种。

8 位补码,其中的一半是:2^(8-1) = 128 个。

那么,它就可以代表 128 个负数:-128~-1。

其余 128 个,代表:0 ~ +127。

所以,8 位的补码,所表示数值 X 的范围是:

     -128 <= X <= +128-1。

一般,n 位的补码,所表示数值 X 的范围是:

   -2^(n-1) <= X <= +2^(n-1)-1。

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

8 位补码,你把小数点,左移 1 位,那么其范围,就是 1/2 了。

如果,你把小数点,左移 7 位,那么其范围,就是 1/2^7 了。

即 1/128。

左移 7 位后,就形成了“定点小数”的补码。

其数值 X 的范围是:

  -128/128 <= X <= +128/128-1/128。

即:-1 <= X <= 1-1/128。

证明完毕。

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式