计算机为什么采用补码的形式存储数据
补码,其实就是一个“代替负数”的正数。
使用了补码之后,在计算机内部,就没有负数了,
从而,也就没有减法运算了。
因此,利用补码,就可以简化计算机的硬件。
而原码和反码,都没有这种功能。
所以,在计算机中,原码反码,都是不存在的。
-----------
补码(一个正数),怎么就能代替负数呢?
你看,2 位 10 进制数的运算:
25 - 1 = 24
25 + 99 = (一百) 24
舍弃进位,只取 2 位数,结果,是不是相同的?
99,就称为-1 的补数。
98,就是-2 的补数。
。。。
补数,是怎么算出来的?
公式,你都可以自己推导:
补数(正数)=负数+周期(10^2)。
正数,本身就是正数了,不需要作任何变换。
所以,正数,并没有补码。
------------
计算机的运算,位数,也是限定的。
8 位机,每次运算,就是 8 位 2 进制。
那么,-1 的补码,就是:
-1 + 2^8 = 255 = 1111 1111 (二进制)。
。。。
如 25 -1 = 24,用补码计算如下:
25 = 0001 1001
[-1]补码 = 1111 1111
--相加---------
得: (1) 0001 1000 = 24
舍弃进位,保留八位的结果,这就是 24。
-------------------------
补码的来源,与原码和反码,毫无关系。
所以,学习原码和反码取反加一符号位不变,都是做无用功。
老外数学不好,才会用使用这些骚操作。
2024-08-23 广告
想要理解补码,应该先理解补数。
时钟表面上,有 12 个数字,倒拨 4 小时,可以用正拨 8 小时代替。
-4的补数,就是 +8。
补码,也是用正数代替负数,用加法,来做减法运算。
这样,就可以节省硬件,赚更多的钱。