负数的补码如何计算?举个例子!

如题所述

就比如-9补码是11110111。

9的源码为00001001,如果是负数的话,补码为最高位置1,其余取反也就是11110110,然后在最低位加1即可即11110111。

计算机中的负数是以其补码形式存在的补码=原码取反+1。

一个字节有8位可以表示的数值范围在-128到+127。用二进制表示也就是10000000-01111111(注意:最高位表示符号)。最高位是1的都是负数最高位是0的都是正数。

扩展资料:

补码乘法

补码的乘法不具备【X*Y】补=【X】补×【Y】补的性质。但是【X*Y】补==【X】补×Y,所得结果再取补码,如x=101,y=011,[x*y]补=-[(-101)*011]=-[011*011]=-01001=10111。

其中,若【Y】补=y31y30……y0,则Y=-y31*2^31+y30*2^30+……+y0*2^0

原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。



温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-27
正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
-1011
原码:11011
反码:10100 //负数时,反码为原码取反
补码:10101 //负数时,补码为原码取反+1
移码:00101 //原数+10000本回答被提问者采纳
第2个回答  2022-01-22

正数,本身就是补码。

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

如:+9 的二进制是:0000 1001。

下面求-9 补码:

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

再取反:1111 0111。

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

这不就完了吗!

简不简单? 意不意外?

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

这些垃圾,只是那些人用来骗吃骗喝的!

第3个回答  2022-09-20

在计算机系统中,数值,一律采用补码表示和存储。

在计算机中,原码和反码,都是不存在的。

所以,求补码,也不必使用它们。

 

补码,是由一系列二进制码组成的。

实用的有 8 位或 16 位。高档的还有 32、64 位。

补码中的每一位,都对应一位十进制数。

要注意:最高位所对应的数值,是负数。

那么,八位的补码,各个位的数值,就是:

  128、64、32、16、8、4、2、1。

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

如果,有一个补码是:1011 1001。

它代表的数值,就是:-128 + 32 + 16 + 8 + 1 = -71。

倘若首位是 0,即为:0011 1001。

求数值,就更简单了:32 + 16 + 8 + 1 = +57。

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

掌握了上述规律,由数值,再求补码,也就很简单了。

例如,求-125 的八位补码。

  这是负数,首位一定是 1,代表了数值-128。

  与-125 相比较,还应该有个 3。

  用七位数值位表示 3,就是:000 0011。

综合在一起,-125 的补码,就是:1000 0011。

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

求补码、求数值,都是很简单的事。

并不需要拐到“原码反码取反加一符号位不变”去。

老外数学不好,脑子不好用,才会弄出哪些个骚操作!



第4个回答  2008-07-15
负数的补码应该是反码加1,比如说-1的补码应该是

-0000 0001 取反得到-1111 1110 然后再加1得到-1111 1111 即为它的补码.
相似回答