• admin
  • 511
  • 2025-10-10 00:36:42

做而论道_CS:

补码,是 “代替负数” 的正数。

不仅仅是二进制数,任意进制中,都有 “补码” 存在。

你看两位十进制数,范围是:0~99。

可以有:27 + 99 = (一百) 26

也可以:27 - 1 = 26

如果你忽略进位,仍然保持两位数,这两种算法的功能,就是相同的。

即,舍弃了进位:

正数,就能当做负数使用。

加法,就能完成减法运算。

如果,在计算机中,舍弃进位呢?

计算机里面,就都是正数了,同时,也就都是加法运算了。

没有了负数,也没有了减法。减法器,当然就没有用处了。

计算机,只需配置一个加法器,便可横行天下!

--------------------

在两位十进制中,舍弃进位,就是:减去了一百。

那么,加 99,再减 100,当然就是“-1 ”了。

在八位二进制中,范围是:0000 0000~1111 1111。

也就是十进制的:0~255。

如果出现进位,就是:2^8 = 256。

那么,加 255 (1111 1111),再舍弃 256,显然也是“-1 ”。

同理,+254 (1111 1110),就是-2。

。。。 。。。

这些个正数,就是计算机大佬“发明”的补码。

--------------------

替换公式:负数的补码=2^8+该负数。

例:求-31 的补码是多少?

解:256-31 = 225 = 1110 0001 (二进制)。

完事!

--------------------

同样道理:正数的补码=2^8+该正数。

但是,正数加上 2^8,就会出现进位。

进位应该舍弃,那么,2^8 就不用加了。

所以,有:正数的补码=该正数。

这就证明了:零和正数的补码,就是其本身。

例题,就不用写了吧!

--------------------

舍弃进位,就是补码的来源和存在意义。

补码,与:机器数真值符号位原码反码取反加一 ...,

一丁点关系都没有!

老外的算术能力太洼了,

什么是进位、什么舍弃进位,

他们都弄不懂。

所以,才编造了这么一大滩的垃圾!

谁要是跟老外学算术,立刻、马上。直接就掉沟里去了。