数字电子教程

数字电子 - 主页

数字电子基础

数字系统的类型 信号类型 逻辑电平和脉冲波形 数字系统组件 数字逻辑运算 数字系统优势

数字系统

数字系统 二进制数表示 二进制运算 有符号二进制运算 八进制运算 十六进制运算 补码运算

进制转换

进制转换 二进制到十进制转换 十进制到二进制转换 二进制到八进制转换 八进制到二进制转换 八进制到十进制转换 十进制到八进制的转换 十六进制到二进制的转换 二进制到十六进制的转换 十六进制到十进制的转换 十进制到十六进制的转换 八进制到十六进制的转换 十六进制到八进制的转换

二进制代码

二进制代码 8421 BCD 码 余3码 格雷码 ASCII 码 EBCDIC 码 代码转换 错误检测和纠正码

逻辑门

逻辑门 与门 或门 非门 通用门 异或门 异或门 CMOS 逻辑门 使用二极管电阻逻辑的或门 与门与或门 两级逻辑实现 阈值逻辑

布尔代数

布尔代数 布尔代数定律 布尔函数 德摩根定理 SOP 和 POS 形式 POS 转换为标准 POS 形式

最小化技术

K-Map 最小化 三变量 K-Map 四变量 K-Map 五变量 K-Map 六变量K-Map 无关条件 Quine-McCluskey 方法 最小项和最大项 规范形式和标准形式 最大项表示 使用布尔代数进行简化

组合逻辑电路

数字组合电路 数字算术电路 多路复用器 多路复用器设计程序 多路复用通用门 使用 4:1 多路复用器的 2 变量函数 使用 8:1 多路复用器的 3 变量函数 解复用器 多路复用器与解复用器 奇偶校验位生成器和检查器 比较器 编码器 键盘编码器 优先级编码器 解码器 算术逻辑单元 7 段 LED 显示屏

代码转换器

代码转换器 二进制到十进制转换器 十进制到 BCD 转换器 BCD 到十进制转换器 二进制到格雷码转换器 格雷码到二进制转换器 BCD 到 Excess-3 转换器 Excess-3 到 BCD 转换器

加法器

半加法器 全加器 串行加器 并行加器 使用半加器的全加器 半加器与全加器 全带 NAND 门的加法器 带 NAND 门的半加法器 二进制加法器-减法器

减法器

半减法器 全减法器 并行减法器 使用 2 个半减法器的全减法器 使用 NAND 的半减法器门

顺序逻辑电路

时序电路 时钟信号和触发 锁存器 移位寄存器 移位寄存器应用 二进制寄存器 双向移位寄存器 计数器 二进制计数器 非二进制计数器 同步计数器的设计 同步与异步计数器 有限状态机 算法状态机

触发器

触发器 触发器的转换 D 触发器 JK 触发器 T 触发器 SR 触发器 时钟控制 SR 触发器 非时钟控制 SR 触发器 时钟控制 JK 触发器 JK 至 T 触发器 SR 至 JK触发器 触发器:触发方法 主从 JK 触发器 竞争条件

A/D 和 D/A 转换器

模拟数字转换器 数字模拟转换器 DAC 和 ADC IC

逻辑门的实现

使用 NAND 门实现非门 使用 NAND 门实现或门 使用 NAND 门实现 AND 门 使用 NAND 门实现 NOR 门 使用 NAND 门实现 XOR 门 使用 NAND 门实现 XNOR 门 使用 NOR 门实现 NOT 门 使用 NOR 门实现 OR 门 使用 NOR 门实现 AND 门 NAND 门和 NOR 门之间的区别 使用 NOR 门实现 XOR 门 使用 NOR 门实现 XNOR 门 使用 CMOS 的 NAND/NOR 门 使用 NAND 门的全减法器 使用 2:1 MUX 的 AND 门 使用 2:1 MUX 的 OR 门 使用 2:1 MUX 的非门

存储设备

存储设备 RAM 和 ROM 高速缓存设计

可编程逻辑设备

可编程逻辑设备 可编程逻辑阵列 可编程阵列逻辑 现场可编程门阵列

数字电子系列

数字电子系列

CPU 架构

CPU 架构

数字电子资源

数字电子 - 资源 数字电子 - 讨论


数字电子技术 - 补码算术

补码算术是数字电子技术领域中使用的数学技术系统,主要用于执行各种算术运算,减法。

在这里,我们将介绍数字系统中以下最广泛使用的补码类型 −

  • 9 的补码
  • 10 的补码
  • 1 的补码
  • 2 的补码
  • 7 的补码
  • 8 的补码
  • 15 的补码
  • 16 的补码

让我们详细讨论这些补码及其在算术运算中的应用。

什么是9 的补数是什么?

在数字电子技术中,9 的补数是一种使用数字系统执行十进制数减法的补数。因此,9 的补数与十进制数系统相关。

  • 9 的补数用于执行减法,因为它简化了减法运算。
  • 给定十进制数的 9 的补数是通过从 9 中减去该数字的每个数字来找到的。

下表显示每个十进制数字的 9 的补数 −

十进制数字 9 的补数
0 9 – 0 = 9
1 9 – 1 = 8
2 9 – 2 = 7
3 9 – 3 = 6
4 9 – 4 = 5
5 9 – 5 = 4
6 9 – 6 = 3
7 9 – 7 = 2
8 9 – 8 = 1
9 9 – 9 = 0

让我们借助示例来理解它。

示例 1

查找十进制数 7824.450 的 9 的补数。

解决方案

以下是查找给定十进制数的 9 的补数的分步过程 −

  • 7 的 9 的补数 = 9 – 7 = 2
  • 8 的 9 的补数 = 9 – 8 = 1
  • 2 的 9 的补数 = 9 – 2 = 7
  • 4 的 9 的补数 = 9 – 4 = 5
  • 4 的 9 的补数 = 9 – 4 = 5
  • 5 的 9 的补数 = 9 – 5 = 4
  • 0 的 9 的补数 = 9 – 0 = 9

因此,十进制数 7824.450 的 9 的补数为 2175.549。

示例 2

求 45608 的 9 的补数。

解决方案

十进制数 45608 的 9 的补数如下所示 −

  • 4 的 9 的补数 = 9 – 4 = 5。
  • 5 的 9 的补数 = 9 – 5 = 4。
  • 6 的 9 的补数 = 9 – 6 = 3。
  • 0 的 9 的补数 = 9 – 0 = 9。
  • 8 的 9 的补数 = 9 – 8 = 1。

因此,45608 的 9 的补数是 54391。

什么是 10 的补数?

在数字电子技术中,10 的补数是用于执行十进制数减法的另一种补数。同样,10 的补数的目的是简化十进制减法运算。

有两种方法可以找到十进制数的 10 的补数 −

方法 I −要找到给定十进制数的十进制补数,首先我们通过从 9 中减去数字的每个数字来找到 9 的补数。然后,我们将 9 的补数加 1 以获得十进制补数,即

十进制补数 = 9 的补数 + 1

使用此方法的每个十进制数字的十进制补数在下表中给出 −

十进制数字 9 的补数
0 9 – 0 = 9 + 1 = 10 = 0 (Ignore the carry)
1 9 – 1 = 8 + 1 = 9
2 9 – 2 = 7 + 1 = 8
3 9 – 3 = 6 + 1 = 7
4 9 – 4 = 5 + 1 = 6
5 9 – 5 = 4 + 1 = 5
6 9 – 6 = 3 + 1 = 4
7 9 – 7 = 2 + 1 = 3
8 9 – 8 = 1 + 1 = 2
9 9 – 9 = 0 + 1 = 1

方法 II −在这种方法中,我们可以使用以下公式来查找给定十进制数的 10 的补数,

10 的补数 = 10N – 数字

其中,N 是十进制数的位数。

让我们通过示例了解查找 10 的补数的过程。

示例 1

查找十进制数 4872 的 10 的补数。

解决方案

4872 的 10 的补数可以按以下方式确定 −

查找 4872 的 9 的补数,

9999 – 4872 = 5127

将 9 的补数加 1 得到 10 的补数,

5127 + 1 = 5128

因此,4872 的 10 的补数是 5128。

示例 2

求 2478.98 的 10 的补数。

解决方案

2478.98 的 10 的补数可以通过以下方式找到 −

求 2478.98 的 9 的补数,

9999.99 – 2478.98 = 7521.01

将 9 的补数加 1 得到 10 的补数,

7521.01 + 1 = 7521.02

因此,7521.01 的 10 的补数是 7521.02。

示例 3

求 58942 的 10 的补数。

解决方案

58942 的 10 的补数如下所示 −

58942 的 10 的补数 = 105 – 58942

58942 的 10 的补数 = 100000 – 58942 = 41058

因此,58942 的 10 的补数为 41058。

什么是 1 的补数?

在数字电子技术中,1 的补数是一种用于简化二进制数减法的补数。此外,1 的补数用于表示给定二进制数的负数。

我们可以通过将数字中的所有 0 更改为 1 并将所有 1 更改为 0 来找到二进制数的 1 的补数。

我们还可以通过从 1 中减去数字的每一位来找到二进制数的补码。

但是,1 的补码有一个主要问题,即它对 0 有两种表示形式。其中,00000000 表示正零,其 1 的补码是 11111111,表示 0,但它被称为负零。

让我们考虑一些例子来理解查找二进制数的 1 的补码的过程。

示例 1

找到 101101 的 1 的补码。

解决方案

101101 的 1 的补码可以通过以下方式获得 −

方法 I −通过翻转每个位 −

  • 1 的补数 = 0
  • 0 的补数 = 1
  • 1 的补数 = 0
  • 1 的补数 = 0
  • 1 的补数 = 0
  • 0 的补数 = 1
  • 1 的补数 = 0

方法 II −通过从 1 中减去每个位 −

111111 – 101101 = 010010

因此,101101 的 1 的补码是 010010。

示例 2

查找 101101101 的 1 的补码。

解决方案

给定二进制数的 1 的补码是,

1 的补码 = 111111111 – 101101101 = 010010010

因此,101101101 的 1 的补码是010010010。

什么是2的补码?

在数字电子技术中,2的补码是一个广泛用于使用数字系统执行二进制减法的概念。

以下三种方法可用于确定给定二进制数的2的补码 −

方法I − 通过找到1的补码,然后将1加到1的补码中,即

2的补码 = 1的补码 + 1

方法II −通过从 2N 中减去给定的二进制数,即

2 的补数 = 2N – 数字

其中,"N"是数字中的位数。

方法 III −从最低有效位 (LSB) 开始,向下复制直到遇到的第一个 1 位,然后对剩余的位求补码。

让我们通过示例了解查找二进制数的 2 的补码的过程。

示例 1

查找 1100111 的 2 的补码。

解决方案

我们可以按如下方式找到 1100111 的 2 的补码 −

方法 I −使用 1 的补码 −

1100111 的 1 的补码 = 0011000

将 1 添加到 1 的补码以获得 2 的补码,

0011000 + 1 = 0011001

方法 II −使用 2 的补数公式 −

2 的补数 = 27 – 1100111 = 128 – 1100111

2 的补数 = 10000000 – 1100111 = 0011001

方法 III −通过从 LSB 开始向下复制位直到第一个 1 位(包括第一个 1 位) −

2 的补码算法

示例 2

查找 11001100 的 2 的补码。

解决方案

11001100 的 2 的补码可以通过以下方式获得 −

方法 I −使用 1 的补数 −

11001100 的 1 的补数 = 00110011

2 的补数 = 1 的补数 + 1

2 的补数 = 00110011 + 1

因此,

2 的补数 = 00110100

方法 II − 通过从 2N 中减去该数字 −

2 的补数 = 28 - 11001100

2 的补数 = 100000000 – 11001100 = 00110100

方法 III − 通过将位向下复制到第一个 1 位 −

2 的补数算术减法

什么是 7 的补数?

在数字电子技术中,7 的补数是用于简化八进制减法的概念。给定八进制数的 7 的补数可以通过从 7 中减去该数的每个数字来获得。

下表给出了每个八进制数字的 7 的补数 −

八进制数字 7 的补数
0 7 – 0 = 7
1 7 – 1 = 6
2 7 – 2 = 5
3 7 – 3 = 4
4 7 – 4 = 3
5 7 – 5 = 2
6 7 – 6 = 1
7 7 – 7 = 0

让我们考虑一些例子来理解求八进制数的 7 的补数的过程。

示例 1

求八进制数 3152 的 7 的补数。

解决方案

3152 的 7 的补数可以通过以下方式获得 −

  • 3 的 7 的补数 = 7 – 3 = 4。
  • 1 的 7 的补数 = 7 – 1 = 6。
  • 5 的 7 的补数 = 7 – 5 = 2。
  • 2 的 7 的补数 = 7 – 2 = 5。

因此,3152 的 7 的补数是4625。

示例 2

求八进制数 427102 的 7 的补数。

解决方案

给定数字的 7 的补数按以下方式确定 −

777777 – 427102 = 350675

因此,427102 的 7 的补数为 350675。

什么是 8 的补数?

8 的补数是另一种用于简化八进制减法的补数概念。实际上,它类似于十进制数系统中的 10 的补数。

我们可以按如下方式找到给定八进制数的 8 的补数 −

  • 通过从 7 中减去数字的每个数字来找到给定八进制数的 7 的补数。
  • 将 7 的补数加 1。
  • 结果将是给定八进制数的 8 的补数。

因此,

8 的补数 = 7 的补数 + 1

下表显示每个八进制数字的 8 的补数 −

八进制数字 8 的补数
0 7 – 0 = 7 + 1 = 10 = 0 (Ignore the carry)
1 7 – 1 = 6 + 1 = 7
2 7 – 2 = 5 + 1 = 6
3 7 – 3 = 4 + 1 = 5
4 7 – 4 = 3 + 1 = 4
5 7 – 5 = 2 + 1 = 3
6 7 – 6 = 1 + 1 = 2
7 7 – 7 = 0 + 1 = 1

让我们借助示例来了解查找 8 的补数的过程。

示例 1

查找 4257 的 8 的补数。

解决方案

4257 的 8 的补数可以通过以下方式找到 −

4257 的 7 的补数 = 7777 – 4257 = 3520

8 的补数 = 7 的补数 + 1

8 的补数 = 3520 + 1 = 3521

因此,4257 的 8 的补数为 3521。

示例2

求 77201 的 8 的补数。

解决方案

给定八进制数的 8 的补数可以按以下方式确定 −

77201 的 7 的补数 = 77777 – 77201 = 00576

8 的补数 = 7 的补数 + 1

8 的补数 = 00576 + 1 = 00577

因此,77201 的 8 的补数为 00577。

15 的补数是多少?

在十六进制数系统中, 15 的补码是一个补码概念,用于简化十六进制数的减法运算。15 的补码类似于十进制数中的 9 的补码。

要找到给定十六进制数的 15 的补码,我们从 15(F)中减去该数字的每个数字。

下表给出了每个十六进制数字的 15 的补码 −

十六进制数字 15 的补码
0 F – 0 = F
1 F – 1 = E
2 F – 2 = D
3 F – 3 = C
4 F – 4 = B
5 F – 5 = A
6 F – 6 = 9
7 F – 7 = 8
8 F – 8 = 7
9 F – 9 = 6
A F – A = 5
B F – B = 4
C F – C = 3
D F – D = 2
E F – E = 1
F F – F = 0

以下示例演示了查找十六进制数的 15 的补数的过程。

示例 1

查找十六进制数 A259C 的 15 的补数。

解决方案

A259C 的 15 的补数可以通过以下方式获得 −

  • A 的 15 的补数 = F – A = 5。
  • 2 的 15 的补数 = F – 2 = D。
  • 5 的 15 的补数 = F – 5 = A。
  • 9 的 15 的补数 = F – 9 = 6。
  • C 的 15 的补数 = F – C = 3.

因此,A259C 的 15 的补数是 5DA63。

示例 2

求 1BCFA 的 15 的补数。

解决方案

给定十六进制数的 15 的补数是,

FFFFF – 1BCFA = E4305

因此,十六进制数 1BCFA 的 15 的补数是 E4305。

16 的补数是什么?

在十六进制算术中,我们还可以确定给定十六进制数的 16 的补数。 16 的补数是一个用来简化十六进制数减法运算的概念。

我们可以按照下面的 − 所述确定给定十六进制数的 16 的补数。

  • 求给定十六进制数的 15 的补数。
  • 将得到的 15 的补数加 1。这给出了十六进制数的 16 的补数。

因此,

16 的补数 = 15 的补数 + 1

下表给出了每个十六进制数字的 16 的补数 −

十六进制数字 15 的补数
0 F – 0 = F + 1 = 10 = 0 (Ignore the carry)
1 F – 1 = E + 1 = F
2 F – 2 = D + 1 = E
3 F – 3 = C + 1 = D
4 F – 4 = B + 1 = C
5 F – 5 = A + 1 = B
6 F – 6 = 9 + 1 = A
7 F – 7 = 8 + 1 = 9
8 F – 8 = 7 + 1 = 8
9 F – 9 = 6 + 1 = 7
A F – A = 5 + 1 = 6
B F – B = 4 + 1 = 5
C F – C = 3 + 1 = 4
D F – D = 2 + 1 = 3
E F – E = 1 + 1 = 2
F F – F = 0 + 1 = 1

让我们举几个例子来理解求十六进制数的 16 位补数的过程。

示例 1

求 1ABDF7 的 16 位补数。

解决方案

给定十六进制数的 16 位补数可以通过以下方式确定 −

1ABDF7 的 15 位补数 = FFFFFF – 1ABDF7 = E54208

16 位补数 = 15 位补数 + 1

16 位补数 = E54208 + 1 = E54209

因此,1ABDF7 的 16 位补数为E54209。

示例 2

查找 ABC 的 16 的补数。

解决方案

ABC 的 16 的补数是,

ABC 的 15 的补数 = FFF – ABC = 543

16 的补数 = 15 的补数 + 1

16 的补数 = 543 + 1 = 544

因此,ABC 的 16 的补数是 544。

这就是寻找数字电子技术中使用的不同类型的补数。

现在,让我们看看它们在执行减法运算中的应用。

减法使用 9 的补数

9 的补数可用于执行十进制数的减法。在这种方法中,两个十进制数的差是通过将减数的 9 的补数加到被减数上而得到的。

让我们通过一个例子来理解使用 9 的补数进行减法。

示例 1

从 (729)10 中减去 (517)10

解决方案

在此示例中,我们有,

被减数 = 729

减数 = 517

求 517 的 9 的补数,我们得到

999 – 517 = 482

现在,将 729 和 482 相加,得到 729 和517,我们得到,

729 + 482 = 1211

有一个末端进位,表示结果为正,通过将末端进位添加到中间结果的 LSD 来获得最终结果,即,

211 + 1 = 212

因此,729 和 517 的差为 212。

示例 2

使用 9 的补码方法从 (159)10 中减去 (203)10

解决方案

在此示例中,

被减数 = 159

减数 = 203

取 203 的 9 的补数,我们得到,

999 – 203 = 796

将 159 和 796 相加,我们得到,

159 + 796 = 955

进位没有终点。因此,最终结果为负数,通过对 955 取 9 的补数获得,即

999 – 955 = 44

因此,减法的最终结果是 159 – 203 = –44。

使用 10 的补数进行减法

我们还可以使用 10 的补数进行十进制减法。使用 10 的补数进行十进制减法的分步过程如下 −

  • 步骤 1 − 考虑十进制减法,X – Y。其中,X 是被减数,Y 是减数。
  • 步骤 2 −求 Y 的十进制补码。
  • 步骤 3 − 将 X 与 Y 的十进制补码相加。
  • 步骤 4 − 如果有循环进位,结果将为正,通过丢弃进位获得最终结果。如果没有循环进位,则表示结果为负数,取中间结果的十进制补数并在其前面赋负号即可。

让我们借助示例来理解使用十进制补数的十进制减法。

示例 1

使用十进制补数算法从 (875)10 中减去 (599)10

解决方案

在此示例中,我们有,

被减数 = 875

减数 = 599

求 599 的十进制补数,我们得到,

599 的十进制补数 = 9 的补数 + 1

因此,

599 的 10 的补数 = (999 – 599) + 1 = 401

将 875 和 401 相加,我们得到,

875 + 401 = 1276

有一个末端进位,表明结果为正,是通过丢弃进位获得的。

因此,875 和 599 的差为 276。

示例 2

使用 10 的补数从 (279)10 中减去 (307)10算术。

解决方案

我们有,

被减数 = 279

减数 = 307

取 307 的 10 的补数,我们得到,

307 的 10 的补数 = (999 – 307) + 1 = 693

将 279 和 693 相加,我们得到,

279 + 693 = 972

没有循环进位,表明结果为负数。最终结果是取 972 的 10 的补数,即

972 的 10 的补数 = (999 - 972) + 1 = 28

因此,最终结果是 -28。

使用 1 的补数进行减法

1 的补数用于二进制减法运算。

两个二进制数(例如 X 和 Y,即 X – Y)的减法可以按照以下步骤使用 1 的补数进行 −

  • 步骤 1 − 求减数 (Y) 的补数。
  • 步骤 2 − 将 X 与 Y 的补数相加。
  • 步骤 3 − 如果有循环进位,则表示结果为正,将循环进位与中间结果的 LSB 相加,即可得到最终结果。如果没有循环进位,结果为负数,取中间结果的 1 的补数并在其前面加上负号即可。

请考虑以下示例,以了解使用 1 的补数算法的二进制减法。

示例 1

使用 1 的补数从 (1011)2 中减去 (111)2

解决方案

在此示例中,我们有,

被减数 = 1011

减数 = 0111

求减数的 1 的补数,

0111 的 1 的补数 = 1000

添加1011 和 1000,我们得到,

1011 + 1000 = 1 0011

有一个末端进位,表示结果为正。最终结果是将这个循环进位加到中间结果 (0011) 的 LSB 上,即

0011 + 1 = 0100

因此,1011 和 111 的二进制差为 100。

示例 2

使用 1 的补码算法从 (111)2 中减去 (1100)2

解决方案

我们得到,

被减数 = 0111

减数 = 1100

求减数的 1 的补码,

1 的补码1100 = 0011

将 0111 和 0011 相加,我们得到,

0111 + 0011 = 1010

没有末端进位,表明结果为负,是通过取 1010 的 1 的补码获得的,即,

1010 的 1 的补码 = 0101

因此,111 和 1100 的二进制差为 -101。

使用 2 的补码进行减法

2 的补码也用于在数字系统中执行二进制减法运算。执行两个二进制数(例如 X 和 Y,即 (X – Y))的减法的分步过程如下 −

  • 步骤 1 − 找到减数 (Y) 的 2 的补数。
  • 步骤 2 − 将 X 和 Y 的 2 的补数相加。
  • 步骤 3 − 如果有循环进位,则表示结果为正,最终结果是通过忽略循环进位获得的。如果没有循环进位,则结果为负,通过对中间结果取 2 的补数并在其前面放置一个负号来获得。

让我们看一些例子来理解使用 2 的补数算法进行二进制减法。

示例 1

使用 2 的补码算法从 (1100)2 中减去 (101)2

解决方案

在此示例中,我们得到,

被减数 = 1100

减数 = 0101

对减数取 2 的补码,我们得到,

0101 的 2 的补码 = (1111 - 0101) + 1 = 1011

将 1100 和 1011 相加,我们得到,

1100 + 1011 = 1 0111

有一个末端进位,表示结果为正,忽略该末端进位即可得到最终结果。

因此,1100 和 101 的二进制差为 111。

示例 2

使用 2 的补码算法从 (0110)2 中减去 (1010)2

解决方案

给定的数字为,

被减数 = 0110

减数 = 1010

对减数取 2 的补码,我们得到,

1010 的 2 的补码 = (1111 - 1010) + 1 = 0110

将减数和减数的2的补数相加,我们得到,

0110 + 0110 = 1100

由于没有循环进位,表明结果为负数。最终结果是通过对中间结果取 2 的补码获得的,即

1100 的 2 的补码 = (1111 - 1100) + 1 = 0100

因此,0110 和 1010 的二进制差为 -100。

使用 7 的补码进行减法

7 的补码算法可用于执行八进制数的减法。以下是使用 7 的补码执行八进制减法所涉及的步骤。

让我们想从 X 中减去八进制数 Y,即 X – Y,然后

  • 步骤 1 −求减数(Y)的7的补数。
  • 步骤2 − 将X和Y的7的补数相加。
  • 步骤3 − 如果有循环进位,表示结果为正,将循环进位加到中间结果上即为最终结果。如果没有循环进位,结果为负数,可通过对中间结果取 7 的补数并在其前面加上负号来获得。

让我们了解使用 7 的补数算法的八进制减法。

示例 1

使用 7 的补数算法从 (721)8 中减去 (540)8

解决方案

给定数字为,

被减数 = 721

减数 = 540

对减数取 7 的补数,

540 的 7 的补数 = 777 – 540 = 237

将7的补数与被减数相加,可得:

721 + 237 = 1 160

有一个循环进位,表示结果为正,将这个循环进位加到中间结果中即可得到最终结果,即:

160 + 1 = 161

因此,721与540的八进制差为161。

示例2

使用7的补数法从(121)8中减去(310)8

解决方案

在此示例中,给定的数字为,

被减数 = 121

减数 = 310

取减数的 7 的补数,我们得到,

310 的 7 的补数 = 777 – 310 = 467

将被减数和减数的 7 的补数相加,即,

121 + 467 = 610

由于进位没有结尾,表明结果为负数,并且是通过取中间结果的 7 的补数获得的,即,

610 的 7 的补数 = 777 – 610 = 167

因此,121 和 310 的八进制差为 -167。

使用 8 的补数进行减法

8 的补数是执行八进制减法的另一种技术。使用 8 的补数执行八进制减法的分步过程如下所述 −

  • 步骤 1 − 如果八进制减法定义为 X – Y。然后,找到减数 (Y) 的 8 的补数。
  • 步骤 2 − 将 X 和 Y 的 8 的补数相加。
  • 步骤 3 −若存在循环进位,则表示结果为正,忽略循环进位,得到最终结果。如果没有循环进位,结果为负数,取中间结果的 8 的补数并在其前面加上负号即可。

让我们通过示例了解使用 8 的补数方法的八进制减法。

示例 1

使用 8 的补数算法从 (712)8 中减去 (103)8

解决方案

我们得到,

被减数 = 712

减数 = 103

求减数的 8 的补数,我们得到,

103 的 8 的补数 = (777 - 103) + 1 = 675

将减数和减数的 8 的补数相加,我们得到,

712 + 675 = 1607

存在末端循环进位。最终结果是通过忽略末端进位获得的。

因此,712 和 103 的八进制差为 607。

示例 2

使用 8 的补码方法从 (206)8 中减去 (471)8

解决方案

在此示例中,我们有,

被减数 = 206

减数 = 471

求减数的 8 的补码,

471 的 8 的补码 = (777 - 471) + 1 = 307

将被减数和 8 的补码相加减数,我们得到,

206 + 307 = 515

由于没有循环进位,因此最终结果为负数,并通过对中间结果取 8 的补数获得,即,

515 的 8 的补数 = (777 - 515) + 1 = 263

因此,206 和 471 的八进制差为 -263。

使用 15 的补数进行减法

15 的补数用于执行十六进制数的减法。如果我们想从 X 中减去十六进制数 Y,则我们按照以下步骤操作 −

  • 步骤 1 − 求减数 (Y) 的 15 的补数。
  • 步骤 2 − 将 X 与 Y 的 15 的补数相加。
  • 步骤 3 − 如果有循环进位,表示结果为正,将循环进位加到中间结果上即为最终结果。如果没有循环进位,结果为负数,取中间结果的 15 的补数并在其前面加上负号即可。

以下示例演示了使用 15 的补数算法执行十六进制减法的过程。

示例 1

使用 15 的补数算法从 (E57A)16 中减去 (1920)16

解决方案

给定的数字为,

被减数 = E57A

减数 = 1920

求减数的 15 的补数,

减数的 15 的补数 = FFFF – 1920 = E6DF

将减数和减数的 15 的补数相加,我们得到,

E57A + E6DF = 1 CC59

有一个末端环绕进位表明结果为正,并且通过将末端环绕进位添加到中间结果获得,即,

CC59 + 1 = CC5A

因此,E57A 和 1920 的十六进制差为 CC5A。

示例 2

使用 8 的补数从 (A209)16 中减去 (DC25)16算术。

解决方案

给定数字,

被减数 = A209

减数 = DC25

查找减数的 15 的补数,

DC25 的 15 的补数 = FFFF – DC25 = 23DA

将被减数和减数的 15 的补数相加,我们得到,

A209 + 23DA = C5E3

因为没有循环进位。结果为负数,通过对中间结果取 15 的补数获得,即

C5E3 的 15 的补数 = FFFF – C5E3 = 3A1C

因此,A209 和 DC25 的十六进制差为 -3A1C。

使用 16 的补数进行减法

16 的补数也用于执行十六进制减法。使用 16 的补数进行十六进制减法所涉及的步骤在此处解释 −

  • 步骤 1 −如果十六进制减法定义为 X – Y。然后,求出减数 (Y) 的 16 的补数。
  • 步骤 2 − 将 X 和 Y 的 16 的补数相加。
  • 步骤 3 − 如果有循环进位,则表示结果为正,忽略循环进位,得到最终结果。如果没有循环进位,则结果为负,取中间结果的 16 的补数,并在其前面加上负号。

让我们看一些例子来理解使用 16 的补码进行十六进制减法。

示例 1

使用 16 的补码算法从 (F9D)16 中减去 (E7C)16

解决方案

给定的十六进制数为

被减数 = F9D

减数 = E7C

取减数的 16 的补码,我们得到,

E7C 的 16 的补码 = (FFF – E7C) + 1 = 184

将被减数和减数的 16 的补码相加,我们得到,

F9D + 184 = 1121

有一个末端进位,表示结果为正。最终结果是忽略末端进位而得出的。

因此,F9D 和 E7C 的十六进制差为 121。

示例 2

使用 16 的补码方法从 (AC5)16 中减去 (FF2)16

解决方案

给定的数字为,

被减数 = AC5

减数 = FF2

取减数的 16 的补码,我们得到,

FF2 的 16 的补码 = (FFF – FF2) + 1 = 00E

将被减数和 16 的补码相加减数,我们得到,

AC5 + 00E = AD3

没有末端进位,表明结果为负。最终结果是通过对中间结果取 16 的补数获得的,如下所示 −

AD3 的 16 补数 = (FFF – AD3) + 1 = 52D

因此,AC5 和 FF2 的十六进制差为 -52D。

结论

总之,补数算术是数字电子技术中用于简化减法运算的一种方法。在本章中,我们解释了不同类型的补数及其在减法运算中的应用以及解决的示例。