补码求真值?

[X]补 = 10001110,求X的真值?
2025-02-19 13:16:25
推荐回答(4个)
回答1:

1.正数,原码= 补码。

2.[X]补 = 10001110,最高位为1,为负数!

负数补码求原码步骤:

假设无符 10001110B=128+8+4+2=142

256D - 10001110B = 256 - 142 = 114

所以,X]补 = 10001110,求X的真值 -114.

详细理论:
C语言、补码.

1.任何数值是以补码存放在内存中的.

2.正数的补码和其原码相同. 补码 = 原码。

3.负数的补码的两种求法:(假设8bit,即8位)

(1).是将该数的绝对值的二进制形式,按位取反,再加1.
例. 求-10的补码.
第一步是取-10的绝对值10;
第二步取10的二进制形式为00001010;
第三步对00001010取反得11110101;
第四步再加1得11110110.
所以-10在内存中就以11110110形式存放。

(2).256-欲求的负数的绝对值 = 此负数的补码。注意:256 - 的是这个负数的绝对值,而不是这个数

。也就是说 256 -|负数|=补码. 求其原码,则 256 - 补码 = |负数| ,则原码需要把首位变为1即可.
例. 求-10的补码.
第一步是 256 - |-10|=246.
第二步把246变为二进制,11110110.
所以-10在内存中就以11110110形式存放。

两种方法比较下来,显然,第二种更为简便!

4.反码:把每位取反,即0变1,1变0即可。

5.一个有符号定点数的最高位为符号位,0是正数,1是负数。

笔者认为,对于原码、补码、反码的追究无需深入,只需要知道数据在计算机中以补码形式存储即可,

至于怎么存储是计算机的事情。当然,大学里面的结业考试或计算机等级考试可能会有个别计算这个的

回答2:

[X]补 = 1 0001110;
[X]反 = 1 0001101;
[X]原 = 1 1110010;
X真值 = -1110010。
十进制:-114。

回答3:

补码求真值,不用求反码原码。

取反加一”或“减一取反”,是不需要的。

你也不用想着“符号位不变”。

直接进行“数制转换”即可。

例如:1000 1110 是个补码。

首位 1,既代表负数,也代表-128。

其余都是正数:8 + 4 + 2 = 14。

求总和,故其真值就是:-114。

回答4:

计算机中的数用补码表示,正数的补码等于原码,负数的补码等于反码+1;
11111111的补码还是11111111。