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位。这种形式的计算机编码称为源代码。
负码表示法规定正数的负码与原码相同。负数的倒数是将原代码逐位倒转,符号位除外。
在计算机系统中,值总是以补码的形式表示和存储。原因是,用补码,符号位和数字范围可以统一处理;同时,加减法也可以统一。
另外,互补码与原码相互转换,其操作过程是相同的,不需要硬件电路的响应。
-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]
8位补码的表示范围是:-128~+127。
8位原码的表示范围是:-127~+127。
它们相差一个数。