补码10000000表示多大?补码10000000的原码是多少啊,还是10000...

补码10000000表示多大? 补码10000000的原码是多少啊,还是10000000吗,补码10000000的大小表示多少啊,是-128吗,最高位不是符号位吗?怎么能参与计算呢,我搞糊涂了,求教

你的问题可以这样解决
[10000000]补
=[10000000]反+1
=11111111+1
=(1)00000000
=00000000(最高位溢出了,符号位变成了0)
你可能会问

10000000这个补码表示的哪个数的补码呢?
其实这是一个规定,这个数表示的是-128
所以n位补码能表示的范围是
-2^(n-1)到2^(n-1)-1
比n位原码能表示的数多一个
到这里你可能已经了解得差不多了,但还是有点迷糊,那再举些说明的例子:
-0.1101
原码:1.1101
反码:1.0010
//负数时,反码为原码取反
补码:1.0011
//负数时,补码为原码取反+1
移码:0.0010
//原数+1
-1011
原码:11011
反码:10100
//负数时,反码为原码取反
补码:10101
//负数时,补码为原码取反+1
移码:00101
//原数+10000
1011
原码:01011
反码:01011
//正数时,反码=原码
补码:01011
//正数时,补码=原码
移码:11011
//原数+10000
0.1101
原码:0.1101
反码:0.1101
//正数时,反码=原码
补码:0.1101
//正数时,补码=原码
移码:1.1101
//原数+1
从以上您
可能已经观察出来了,其实让人不理解的原因在于:
无法用8位的源码表示
这个数的真值是
-2^7
源码的表示范围是
-(2^7
-
1)到
2^7
-
1
补码的表示范围是
-2^7

2^7
-
1
补码要多出一个数,而这个数就是你问的10000000
在源码里面00000000和100000000都是表示0
这样比较浪费,在补码里面,就把100000000当做
-2^7
,以扩大补码表示范围
以上回答希望对你有用
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-09-14

补码 10000000,表示多大? 原码是多少?

可以肯定的说:八位的原码,是不存在的。

因为,这个补码,是代表的十进制数-128 的。

而-128,有八位的补码,并没有八位的原码和反码。

因为,原码和反码的定义,都是有缺陷的:

 一个数字零,它们却都定义了两个编码!

所以,八位的原码反码,只能表示-127 ~ +127。

无法表示-128。

因此,用“取反加一”求-0 或-128 的补码,都是行不通的。

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

求补码的正规做法,是使用定义式:

 当 X >= 0,  [ X ]补 = X;     零和正数不用变换。

 当 X < 0,  [ X ]补 = X + 2^n。 n 是补码的位数。

这个定义式,是通用的。你可以在书上找到的。

那么,[-128]补 = -128 + 2^8 = 1000 0000 (二进制)。

所以,八位的补码 1000 0000,就是代表数值-128。


本回答被网友采纳