-128的二进制补码是怎么得来的?

不要告诉我-128的补码是10000000,我要问的是计算过程,按照原码取反,反码加1我得的结果不是这个。所以有谁知道这计算过程麻烦告诉一下

补码10000000唯一的表示-128是一个规定,不需要推算,理由如下:

现在来推-128的补码:

-128的补码:10000000 - 10000000(+128没有符号位)=10000000

-128的反码:1111 1111(1000 0000 +1=1000 0000+1111 1111=1111 1111)

-128的原码:10000000(反码取反)

往回推:

-128的原码 10000000 (-128,进位被舍去)

-128的反码 11111111

-128的补码 10000000(11111111(反码) + 1=10000000,这里实际上真正相加的是11111111后面的7位,第1位是符号位始终不会变,所以,当进到第8位的时候,就表示溢出了,会被舍弃。0只有一个补码00000000,如果是这样,那么10000000就不会表示成-0的补码

即:补码1000 0000唯一的表示-128,在补码中用(-128)代替了(-0),所以补码的表示范围为: (-128~0~127)共256个.

注意:(-128)也有相对应的原码和反码, 它的反码是(11111111)原码仍然是(10000000)(-128)

扩展资料:

负数的补码就是对反码加1,而正数不变,正数的原码反码补码是一样的。

补码的得来:是为了让负数变成能够加的正数,所以,负数的补码=模-负数的绝对值

比如:-1 补码:11111111(00000001,也就是-1的绝对值,取反加1得来)当一个数要减1的时候,可以直接加 11111111。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-20
10000000表示-128的补码,你可以理解为是一个特殊性。

各种8位二进制的表示法的数据范围如下:
原码: -127 ~ 127
反码: -127 ~ 127
补码: -128 ~ 127

补码运算:正数为原码本身,负数为原码取反加一
127为正数,其补码为原码0111 1111
-127为负数,其补码为原码0111 1111,取反1000 0000,加一,1000 0001。

根据这情况来看,表示-0,不是的,-0的原码是1000 0000补码是0000 0000。+0的补码也是0000 0000

于是就有了规定 1000 0000 定为 -128的补码
这种定法和上面数学层面的表述是一致的。
这样规定后,负数的补码在机器中就好算了。
在约定的范围内(-128-+127,对16位32位64位等扩大范围)
先将该负数取绝对值,再用二进制表示出这个绝对值 (不管符号位)
对该二进制数进行取反加一操作就得到负数的补码了
-128 绝对值是 128
128的二进制表示为:
1000 0000
取反
0111 1111
加1
1000 0000
这就是-128的补码
这种办法算出的结果符合“规定值”,规定而已。本回答被网友采纳
第2个回答  推荐于2017-09-10
-128是人为规定的。
因为8位2进制中,存在 “-0”(1000 0000)和"0"(0000 0000),虽然“-0”也是“0”,但根据正、反、补码体系,“-0”的补码和“+0”是不同的,这样就出现两个补码代表一个数值的情况。为了将补码与数字一一对应,所以人为规定“0”一律用“+0”代表。同时为了充分利用资源,就将原来本应该表示“-0”的补码规定为代表-128。
第3个回答  2021-05-12
有人说我内容不规范,拜托,这个内容不是我原创的,难道没看到下面一行作者的原创声明吗????
————————————————以下为原回答————————————————
二进制下,有多少位数参加运算,模就是在 1 的后面加上多少个 0。
这个时候我们就可以尝试去解答本篇博客题目所提出的问题了——为什么(八位二进制中)-128的补码是10000000?
其实,我们可以这样理解:-128是一个负数,而负数的补码等于模减去该数的绝对值。所以-128的补码是它的“模”(即256)减去它的绝对值,即:
100000000 - 10000000 = 10000000
这样我们就解决了最基本的问题了。
————————————————
版权声明:本文为CSDN博主「一只野生饭卡丘」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:本回答被网友采纳
第4个回答  2020-07-04
什么是补码?怎么求补码?
看看书,就会知道,补码,是有严格定义的。

按照定义来求补码,就用不着涉及原码反码。

如果,你非要用求反加一的做法,就难免碰上原码反码。

但是,的八位码长的限制下,-128,既没有原码,也没有反码。

这时,你还要用求反加一的做法,就一定会碰的头破血流。

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

按照补码的定义,负数的补码,定义如下:

 [ X ]补 = 模-| X |

按照定义,-128,如下求补码。

 [-128]补 = 256-|-128| = 128

写成二进制,就是:1000 0000。

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

这就是详解。

简不简单? 意不意外?

是不是比“求反加一”更方便?

利用定义,可以求任何负数的补码。
但是,多数人,都是推崇“求反加一”的。
你们这些人,都是被人忽悠瘸了。呵呵

如此简单的定义、方法,你们不学、不用,

偏要去钻死胡同,呵呵

使用求反加一!!!

你们能找到-128 的原码、反码吗?

-128的二进制补码是怎么得来的?
结论是,-128在二进制中的补码10000000是由特定规则确定的,并非通过复杂的计算得出。这个规则简单明了:为了表示负数,补码采用的是直接减去该数的绝对值(128)然后加上1。对于-128,它的绝对值128的反码是11111111,然后加1就得到补码10000000。这种设计使得在补码系统中,-128与-0区分开来,同时保持了...

-128的二进制补码是怎么得来的?
-128的原码10000000(-128,进位被舍去)-128的反码11111111 -128的补码10000000(11111111(反码)+1=10000000,这里实际上真正相加的是11111111后面的7位,第1位是符号位始终不会变,所以,当进到第8位的时候,就表示溢出了,会被舍弃。0只有一个补码00000000,如果是这样,那么10000000就不会表示成-0的补码 即...

-128的二进制补码是怎么得来的?
定为 -128的补码 这种定法和上面数学层面的表述是一致的。这样规定后,负数的补码在机器中就好算了。在约定的范围内(-128-+127,对16位32位64位等扩大范围)先将该负数取绝对值,再用二进制表示出这个绝对值 (不管符号位)对该二进制数进行取反加一操作就得到负数的补码了 -128 绝对值是 128 12...

-128的补码是怎么求出来的啊?
方法一:有公式的:要求x为负数 [-x]补=2的8次方-|-x| 所以-128的补码=256-|-128|=128=80H 方法二:直接由原码求补码 (1)正数的原码=补码 (2)负数:先写出负数绝对值的原码,再求反加一 所以—128的绝对值的原码为80H,求反为0111 1111,再加一为1000 0000,就是80H ...

-128的八位二进制原码、反码、补码是如何得出的,求解析!
-128的八位二进制原码是110000000。反码是101111111,补码是110000000。十进制转换为二进制,-128=-(1*2^7) =110000000。负数原码的反码是10000000的按位取反,即01111111,加上符号位为101111111。负数原码的补码是负数原码的反码加1,即01111111+1 = 10000000,加上符号位为110000000。

128的补码
因为-128没有原码和反码,只能直接根据定义来求,方法如下:负整数补码的定义:[X]补=2^n+X;设机器字长n=8,即一个字节 则[-128]补=2^8-128,用二进制表示:[-128]补=100000000-10000000=10000000 即10000000是-128的补码 这就是是根据定义来求-128的补码 ...

一个字节中,-128。怎么从原码转变为补码?
码长八位时,-128 既没有原码,也没有反码。所谓的:原码取反加1,就是无处下手的。其实,求负数的补码,方法步骤,极其简单。就是:先用绝对值减一,再取反。就完事了。那么,就是:127 = 0111 1111。取反,即为:1000 0000,这就是-128 的补码。

-128的八位二进制原码、反码、补码是如何得出的,求解析!
原码是直接将十进制的-128转换为二进制,结果为110000000。对于负数,其原码的反码是通过将原码除符号位外的其他位按位取反得到,所以-128的反码是101111111。而补码则是反码的基础上再加1,以适应计算机中的表示,所以-128的补码仍然是110000000。从十进制到二进制的转换,我们采用除2取余的方法,例如-...

为什么-128的补码等于11111001?
这是一个带符号为的8位二进制数,所以最高位要表示负数符号要用掉一个“1”.所以剩下4个“1”和3个“0”。给你看个例子,-1的补码是1111,1111;扣除最高符号位表示为111,1111。-2的补码是1111,1110;扣除最高符号位表示为111,1110。由此可以看出来补码表示的负数“1”权越大数越大,最后...

-128的补码是什么,怎么求的?
在码长 8 位时,-128 的原码和反码,都是不存在的。-128 的补码,用“取反加一”就求不出来了。必须用“补码的定义式”来求:[-128]补 =-128 + 2^8 = 128 = 1000 0000 (二进制)。

相似回答