怎么理解 128 的原码是 1000 0000 ,补码也是 1000 0000。
另外, -127 的原码是 1111 1111 , 为什么 -128 就成了 1000 0000
------------------
在码长八位时,-128 并没有原码反码,只有补码:1000 0000。
求-128 的补码,取反加一,是不好用的。
必须用“补码的定义式”才能求出-128 的补码。
定义式如下:
负数的补码 = 2^n -| 负数 | = 256 + 对应的正数。
零和正数,不用变,直接参加计算。
怎么理解-128的原码是 1000 0000 ,补码也是1000 0000 。
怎么理解-128的原码是 1000 0000 ,补码也是1000 0000 。
另外, -127的原码是1111 1111 , 为什么 -128 就成了1000 0000
--------------------
如果按照码长八位来分析,-128 根本就没有原码和反码。
-128 只有八位的补码。
由此来看,取反加一,是有漏洞的。
求补码,应该用公式来求,千万别相信什么取反加一了。
原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
当字长为8位时,(-128)没有相对应的原码和反码, (-128) = (10000000)
-128的机器码原码实际是:110000000,反码101111111,补码110000000,截取低8位即10000000,表示的是一个负数。