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

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

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

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

如上图所示,这个开关向下断开时表示选择加法运算,反之向上接通则表示选择减法运算。此外,右侧的8个灯泡用于表示计算结果。这里,第9个灯泡表示“上溢/下溢”。这个灯泡表明了正在计算的数字是一个不能用8个灯泡来表示的数字。如果在加法中得到了大于255(上溢,overflow)或在减法中得到了负数(下溢,underflow)这个灯泡就会发光。当减数大于被减数的时候,就会得到一个负数。

加法器中新增的主要部分就是一个用来求8位二进制数对1补数的电路。之前提到,二进制数对1求补数相当于对其每位取反,因此我们计算8位二进制数补数的时候可以简单地应用8个反向器。

问题是,该电路只会对输入求反,而我们要的是一台既能做加法又能做减法的机器,因此就要求该电路当且仅当进行减法运算时才实现反转。电路可以改造为如下图所示。

标记为“取反”的信号将被输入到每一个异或门中。回想一下异或门的工作方式,如下表所示。

因此,如果“取反”信号是0,则8个异或门输出与输入相同。例如,如果输入是01100001,那么输出也为01100001。如果“取反”信号为1,则输出信号反置。例如,如果输入为01100001,输出则为10011110。

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

154