奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 157 页

PDF 物理页索引 173 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
157
PDF 物理页
173(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
d93a282433cc4512b4570a03be3b510795d7ce86c0063a9c60e7e7c96f4d93f4

用 500 表示-500
用 501 表示-499
用 502 表示-498
用 998 表示-2
用 999 表示-1
用 000表示 0
用001表示1
用 002表示 2
用497表示 497
用498表示 498
用 499表示 499

也就是说,以5,6,7,8或9开头的三位数实际上表示的都是负数,而不是把数字写成这样:

–500, –499, -498 … -4, -3, -2, -1, 0, 1, 2, 3, 4 … 497, 498, 499

用这种表示法,我们可以将它们写成:

500,501,502…996,997,998,999,000,001,002,003,004497,498,499

注意,这就形成了一个循环排序。最小的负数(500)看起来像是最大正数(499)的延续。而数字999(实际上是-1)是比0小1的第一个负数。如果我们在999上加1,通常会得到1000。由于我们处理的是三位数,这个结果实际上就是000。

这种标记方法称为10的补数(ten's complement)。为了将三位负数转化为10的补数,我们用999减去它再加1。也就是说,对10求补数就是对9的补数再加1。例如想要得到-255对10的补数,用999减去255得到744,然后再加1,得到745。

你可能听说过:“减一个数就等于加一个负数。”你可能会回答:“实际上还是减去了这个数。”然而,利用10的补数,我们将不会再用到减法。所有的步骤都用加法来进行。

13 如何实现减法

157