所谓变号操作是指将一个整数变成绝对值相同但符号相反的另一个整数。假设使用补码表示的8位整数X=10010101

2024-11-19 08:54:01
推荐回答(2个)
回答1:

X=10010101

首先将X中的二进制数全部更换,即Y=01101010,也就是把原来的0换成1,原来的1换成0.

然后槐空明,把Y加1,即结果Z=Y+1=01101011.

为什么要加1呢?举个最简单的例子,按照变号操作,“0”变号操铅告作以后应该还是“0”,对吧。但是如果我们把“0”的二进制数更换以后,会发生什亏稿么呢?

A=00000000,更换后B=11111111

这样“0”就变成“-127”了,因为最左边的那一位二进制数是符号位(0代表正数,1代表负数),这样就会出问题,因此需要再加1,使得结果C=B+1=00000000

回答2:

“变号操作”是指将一个整数,变成绝对值相同、但符号相反的另一个整数。

这就是:已知 X,求-X。

对于一个数值来说,只要把数值前面的正负号(+、-),变换一下即可。

如果这个数值,是用原码或反码表示的,你把最高位取反,就是变号了。

如果这个数值,是用补码表示的,则需要“全部取反再加一”。

原脊棚码 1001 0101,变号之后,其相反数的原码,就是 0001 0101。

补缺春码 1001 0101,变号之后,其相反数的补码,就是 0110 1011。伏野耐

---------

由此可知,把原码或反码的最高位,称为“符号位”是正确的。

对于补码来说,要想改变数值的符号,则需要改变补码所有的位。

所以,把补码的最高位,称为“符号位”是不准确的。