负数的补码怎么求

如题所述

    口诀:正:全不变 负:除符号位外,各位取反加一    

    求-10的补码,如下:
    1)取-10的绝对值;
    3)对1010取反得1111 1111 1111 0101(这里假定一个整数占16位)
    4)再加1得1111 1111 1111 0110;                    

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-28

常识:

 正数的补码,是其本身。

 负数的补码,就用正数,减一取反,即可。

 

比如,+10 的补码,就是:0000 1010。

下面求-10 的补码:

 先减一:可得 0000 1001;

 再取反:就是 1111 0110。

这就求出来了。

即:[-10]补 = 1111 0110。

----

在计算机中,只有补码,并没有原码反码。

原码、反码、符号位,求反加一,都是垃圾。

在计算机中,根本就没有这些方法步骤。

另外,-128 根本没有原码反码,拿什么求反加一呢?

----

补码,写成十进制,也是正确的。

那么,按照八位补码的定义式,可以得出:

 如 X ≥ 0 (正数): [ X ]补 = X = 0 ~ 127;

 如 X < 0(负数): [ X ]补 = 模 - | X | = 128 ~ 255。

当 X 的补码大于 127,X 就是负数了。

本回答被网友采纳
第2个回答  2022-05-14

正数的补码,是其本身。

负数的补码,就用它的正数,减一取反,即可得到补码。

如+9 补码是:0000 1001。

下面求-9 补码:

先减一:0000 1001 - 1 = 0000 1000;

再取反:1111 0111。

所以有:-9 补码 = 1111 0111。

这不就完了吗?

简不简单?意不意外?

原码反码符号位,讨论这些垃圾干嘛?

不都是骗人的吗?

第3个回答  2019-10-01
说简单一些就是先减一然后按位取反,此为一个字节,9转换为二进制就是00001001,减一00001000,按位取反11110111。
第4个回答  2019-12-19