亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

二元减法

我们可以使用适用于十进制数的标准技术从另一个二进制数中减去一个二进制数(减去每个位对,从右到左,根据需要从位到左“借用”)。但是,如果我们能够利用已经熟悉(且更简单)的二元加减技术,那就更好了。

正如我们刚刚了解到的,我们可以通过使用“二进制补码”方法和负位权重位来表示负二进制数。在这里,我们将使用这些负二进制数进行加法减法。

这是一个示例问题:

减法:710 - 510 加法当量:710 + (-510) 

如果我们需要做的只是以二进制(二进制补码)形式表示 7 和负 5,我们只需要三位加上负权位:

正七 =01112 负五 =10112 

现在,让我们将它们加在一起:

<前>。 1111 <--- 进位 . 0111 . + 1011 . ------ . 10010 . | .丢弃额外的位 . .答案 =00102

由于我们已经将数字位域定义为三位加上负权重位,因此答案 (1) 中的第五位将被丢弃,从而得到 00102 或正二的结果,这是正确答案。

理解为什么我们丢弃额外位的另一种方法是记住较低数字的最左边的位具有负权重,在这种情况下等于负八。

当我们将这两个二进制数加在一起时,我们实际上对 MSB 所做的是从较高数字的 MSB 中减去较低数字的 MSB。在减法中,永远不会“携带”一个数字或位到下一个左边的位置权重。

让我们尝试另一个例子,这次使用更大的数字。如果我们想把-2510加到1810上,首先要决定我们的二进制位域有多大。

为了表示我们问题中的最大(绝对值)数,即 25,我们至少需要 5 位,再加上第 6 位作为负权重位。让我们从表示正的 25 开始,然后找到两个的补码并将它们放在一个数字中:

+2510 =0110012(显示所有六位) 110012 的补码 =1001102 一的补码 + 1 =二的补码 =1001112 -2510 =1001112 

本质上,我们通过使用负权重(第 6 个)位的值为负 32 加上正 7(二进制 1112)来表示负 25。

<前>。 1810 =0100102 . .现在,让我们将它们加在一起,看看我们得到了什么: . . 11 <--- 进位 . 100111 . + 010010 . -------- . 111001

由于左侧没有“额外”位,因此没有要丢弃的位。答案最左边的位是 1,这意味着答案是否定的,应该是二进制补码形式。通过将所有位与其各自的权重值相加,将答案转换为十进制形式,我们得到:

(1 x -3210) + (1 x 1610) + (1 x 810) + (1 x 110) =-710 

事实上-710是-2510和1810的正确和。

相关工作表:


工业技术

  1. 电子科学
  2. 设置家庭实验室
  3. 电压表使用
  4. 欧姆表用法
  5. 一个非常简单的电路
  6. 3 位二进制计数器
  7. 十进制数与二进制数
  8. 八进制和十六进制数
  9. 二进制加法
  10. 负二进制数
  11. 在 x86 上为 arm 构建容器
  12. 在 PLCnext 上开始使用 Go