-128的补码是多少 详解

如题所述

什么是补码?怎么求补码?

看看书,就会知道,补码,是有严格定义的。

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

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

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

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

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

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

[X]补 = 模-| X |

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

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

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

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

这就是详解。

简不简单? 意不意外?

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

可以参考:网页链接

看到上一篇答案,后面有许多人留言评论。

呵呵,多数人,都是推崇“求反加一”的。

你们这些人,都是被人忽悠瘸了。

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

偏要去钻死胡同,呵呵

使用求反加一!!!

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-15
128 =1000 0000,8位机器
[-128]原码 = 1000 0000 发生了溢出,最高位表示符号位:0为正数,1为负数
[-128]反码 = 1111 1111 除符号位外,各位取反
[-128]补码 = 1000 0000 反码的末位加1,不能影响符号位本回答被提问者和网友采纳
第2个回答  2012-09-13
楼主你的先说,是多少位的数
是什么码 原码补码余127码,很多

实际上8位的2进制数里用负零 -0来表示-128的,你想想,取反+1,就是补码
-127=11111111 -1+127=10000000 符号位不变,进位溢出了
第3个回答  2022-09-06

求补码,有【通用的定义式】。 也有简易操作的“取反加一”。

“取反加一”的方法流传太广,以至于取代了定义式的主要地位。

其实,原码、反码、符号位、取反加一,这些,是一个不完善的方法。

因为“取反加一”有缺陷,所以,“如何求-128 补码”就是一个难题。

“取反加一”其根本的弊病在于:

  世界上,只有一个零,但是原码反码,都设定了两个编码,这就乱套了。

此时,八位原码反码的表示范围,只能是:-127~+127。

  但是,八位补码,却要表示-128!

  -128 没有原码反码,“取反加一”从何处下手?

很多人,都没有学到【补码的定义式】,所以,就不会求了。

另外,[-0]补码=0000 0000,也是难以解释的。

  -0,符号位不应该是 1 吗?

  难道,-0 是正数?

有人辩解说,0 只有一个补码,没有+0、-0 之分。

  一个补码,是谁规定的?

  原码反码,又为什么要弄两个编码?

  [-0]反码 + 1,是不是补码?

“取反加一”,就是一大篇自相矛盾的谬论。

用【补码的定义式】求补码,就什么毛病都没有了。

但是,弄的太简单了,就无法体现出计算机老师的水平高了。

第4个回答  2018-03-15
这个根本就不对,根本就不能用取反再加一的方式来求-128的补码。对于8位带符号数,原码和反码的表示范围都是-127~+127。也就是说对于8位的二进制数,根本就没有-128的原码、反码这一说。
-128的补码可以这么来理解:补码是一种循环计数系统,类似于钟表,比方说实际时间为7点,时针错误的停在11点上,怎么调整呢?两种方式,一是逆时针转4,即11-4=7;二是顺时针转8,即11+8=11+(-4+12)=12(自动舍掉)+7=7。模就是循环计数系统中所表示的最大数。所以(-4)与(+8)对模12互为补数,同余数。
对于8位二进制数,模为256。随便举个例子(-6)和(250)对模256互为补数,同余数。也就是说-6的补码就是250的二进制形式,即1111 1010。
那我们就可以得出(-128)和(+128)对模256互为补数了,也就是-128的补码就是128的二进制形式1000 0000。
相似回答