为啥整数的补码是其本身?//0001 的补码是多少?
其实,补码,它就是一个“代表负数”的正数。
使用了补码之后,计算机中,就没有负数了。
而且,也就没有减法运算了。
那么,计算机中,只需配置一个加法器,就可以走遍天下了。
---------------
补码(一个正数)怎么就能代表负数呢?
你看 10 进制: 28 - 1 = 27
28 + 99 = (一百) 27
只要你限制在2 位数,超过 2 位就舍弃!
那么,+99 和-1,就是等效的。
同样,+98 就能代表-2。
。。。
这些正数,就叫做“负数的补数”。
计算公式,你肯定能推出来: 补数 = 负数 + 10^2。
正数,已经就是正数了,必须直接参加运算,不许变化。
当然,也有人说,正数,其本身就是补码。
-----------------------
计算机中,以 8 位 2 进制,称为一个字节。
那么有:
-1 的补码,就是:-1 + 2^8 = 255 = 1111 1111 (二进制)。
-2 的补码:-2 + 256 = 254 = 1111 1110。
。。。
-128 的补码:-128 + 256 = 1000 0000。
-----------------------
有了这些,不就完事了吗?
原码反码取反加一符号位不变。。。还弄这些干嘛?
老外,数学不好,只能绞尽脑汁,弄出这些个骚操作!
从原码反码,开始学习补码,就弄不明白【补码的意义】。
而且,还会在-0、-128 这里,走进死胡同,找不到出路。
正正数的:
原码 +5[0101]
反码 +5[0101]
补码 +5[0101]
负整数的:
原码 -5[1101]
反码 -5[1010]
补码 -5[1011]
你的问题,0001的补码是多少,
如果最高位0是符号位,补码仍然是0001
如果在这个之前还有其他符号位如 0 0001或1 0001
按照最高符号位判断,最高符号位为0反补都不变,最高符号位为1,反码取反,补码加1