补码10000000原码是多少

怎么计算的
2024-11-15 13:28:06
推荐回答(5个)
回答1:

无法用原码表示,按照原码定义,8位原码所表示真值的范围为:-127(11111111B)~+127(01111111B)。补码10000000B的真值为-128,超出了8位原码的表示范围,所以无法用8位原码表示。

数0的补码表示是唯一的。

[+0]补=[+0]反=[+0]原=00000000;

[-0]补=11111111+1=00000000。

扩展资料:

已知一个数的补码,求原码的操作其实就是对该补码再求补码:

1、如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

2、如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

例:已知一个补码为11111001,则原码是10000111。

因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”。

其余七位1111001取反后为0000110;再加1,所以是10000111。

参考资料:

百度百科-补码

回答2:

无法用8位的源码表示
这个数的真值是 -2^7
源码的表示范围是 -(2^7 - 1)到 2^7 - 1
补码的表示范围是 -2^7 到 2^7 - 1
补码要多出一个数,而这个数就是你问的10000000

在源码里面00000000和100000000都是表示0
这样比较浪费,在补码里面,就把100000000当做
-2^7 ,以扩大补码表示范围

回答3:

8位补码10000000B的原码无法表示!
按照原码定义,8位原码所表示真值的范围为: -127(11111111B) ~ +127(01111111B)。补码10000000B的真值为-128,超出了8位原码的表示范围,所以无法用8位原码表示。

回答4:

补码 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。

回答5:

补码,原码,并非是一一对应的。
-128 具有补码 1000 0000。
但是,-128 并没有八位的原码。