计算机组成原理,图中第二处画波浪线的地方,补码的表示范围不应该是-2^n~2^n吗?为什么图中要-1呢?
2个回答
展开全部
假设整数字长为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
对于原码来说,能表示的正数为: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
展开全部
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。
证明完毕。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询