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

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

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

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

$$
\frac { - 1 7 6 } { 3 3 7 3 }
$$

将这些数字转化为二进制数,问题变为:

$$
\frac { - 1 0 1 1 0 0 0 0 } { ? ? ? ? ? ? 2 9 2 9 2 }
$$

第一步,用11111111(即255)减去减数:

$$
\frac { - 1 0 1 1 0 0 0 0 } { 0 1 0 0 1 1 1 1 }
$$

当计算十进制数减法的时候,减数是从一串9中减去的,结果称为9的补数。在二进制数减法中,减数是从一串1中减去的,结果称为1的补数。但是请注意,我们在求对1的补数时并不需要用到减法。在求对1的补数时,只需将原来的二进制数中的1变为0,将0变为1即可。因此对1求补数有时也会称为相反数(negation)或反码(inverse)。这里你可能会想起第11章中的反向器,它的作用就是将0变为1,将1变为0。

第二步,将减数对1的补数与被减数相加:

$$
\frac { 1 1 1 1 1 1 0 1 } { 1 0 1 0 0 1 1 1 1 }
$$

第三步,将上式所得结果加1:

$$
\frac { 1 0 1 0 0 \div 1 0 0 } { 1 0 1 0 0 \div 1 0 1 }
$$

第四步,减去100000000(即256):

$$
\frac { 1 0 1 0 0 1 1 0 1 } { 1 0 0 0 0 0 0 0 0 }
$$

结果就等于十进制数的77。

13 如何实现减法

151