-128的补码是什么?原码是什么?乱死我了!

2024-10-28 20:38:28
推荐回答(3个)
回答1:

128没有原码、逆码和补码,但是补码是从-128到+127,所以-128的补码应该是1000万,-128的补码没有逆码。减128等于1000000。

二进制源代码或8位二进制逆码的表示范围为-127~+127,不能表示-128;8位二进制补码范围为-128~+127,-128的8位二进制补码范围为1000万。

其他的都超过了,负127到正127的逆在8位整数中也是如此。

扩展资料:

计算机中的所有数字都由0、1的编码表示,数字的符号也不例外。如果一个机器号的长度是n位,那么最左边的位用作符号位,其余的n-1位用作表示该值。

我要在符号位上用“0”表示一个正数;我要用1表示负数。数字位表示真值的绝对值。当小于n-1位时,小数点将在最低位的右边加0。整数在最高位的左边加上0来补充n-1位。这种形式的计算机编码称为源代码。

负码表示法规定正数的负码与原码相同。负数的倒数是将原代码逐位倒转,符号位除外。

在计算机系统中,值总是以补码的形式表示和存储。原因是,用补码,符号位和数字范围可以统一处理;同时,加减法也可以统一。

另外,互补码与原码相互转换,其操作过程是相同的,不需要硬件电路的响应。

回答2:

-128,绝对值128,有符号数值范围是-127到+127,所以128的二进位是要用2字节内存保存,即16位,所以128的二进制码是(中括号只是表示一个字节)
[00000000][10000000]

以上是+128的原码,同时也是+128的补码

-128就是要+128的原码全部取反再加1:
+128的原码:[00000000][10000000]
取反就得到:[11111111][01111111]
再加1得到了:[11111111][10000000],这就是128的补码

*补码是数据在内存的储存形式
要求-128的原码,只需把+128的原码的最高位(符号位)更改就可:
+128的原码:[00000000][10000000]
-128的原码:[10000000][10000000]

*由码码求补码:除符号位外,其它全取反再加1
*所以,求负数的二进制补码至少有上述两种:
1.取绝对值,求绝对值二进码,全部取反再加一
2.取绝对值,求绝对值二进码,最高位改为1,除符号位外其它取反再加1

当然,如果保存-128的变量是4字节的,按上面方法可得到
-128原码[10000000][00000000][0000000][10000000]
-128补码[11111111][11111111][1111111][10000000]

回答3:

8位补码的表示范围是:-128~+127。

8位原码的表示范围是:-127~+127。

它们相差一个数。