王鹏飞

Blog

Tutorial

About

开发者笔记

2023年2月12日

计算机如何用二进制计数

二进制

计算机内部使用数字电路搭建而成,而数字电路由 0 和 1 两种状态组成,所以计算机内部的沟通都是通过 0 和 1 沟通。十进制是“逢十进一“,二进制则是“逢二进一“。

例如,二进制 11 表示 十进制的 3,三位二进制最大能表示的数字为 111,即十进制的 7。关于十进制与二进制的转换不在本节内容的讨论范围内,请读者另外查找资料。

下面是一位二进制的加法表:

op1 op2 res
0 0 00
1 0 01
0 1 01
1 1 10

全加器

计算机采用的是如下逻辑电路计算两个 bit 的加法。

全加器 全加器以及相关符号表示

要理解全加器,首先要理解里面的符号表示:XOR(异或),OR(或),AND(与),NAND(非与),NOR(非或),Inverter(取反)。

各种符号运算方法如下:

  • XOR:相同为 0,不同为 1。两个 bit 进行异或运算,只有当它们不同时才为 1,相同时为 0
  • OR:只要有一个为 1,结果为 1
  • AND:只有两个同时为 1,结果才为 1
  • NAND:对两个 bit 进行 AND 运算后取反
  • NOR:对两个 bit 进行 OR 运算后取反
  • Inverter:对一个 bit 进行取反

通过上述方法,我们可以列出每种运算方法的真值表,例如 XOR 的真值表如下:

A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0

感兴趣的朋友可以自己列出其他几种运算的真值表。

接下来,再对照上图中的全加器数字电路图,看看它是如何实现的,图中 Cin 是低位传上来的进位,Cout 是产生的进位,例如 1 和 1 进行 AND 运算(这里的 1 表示第 0 位),产生的 Cout 为 1,但是对于第 1 位来说低位产生的 Cout 则是高位的 Cin。

我们列出全加器的真值表:

A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

请读者自己根据上面的表和全加器图进行对照运算,以理解全加器的工作原理。

有了全加器,我们将很多个一位全加器串联,就得到了多位加法器。

多位加法器

(完)

留言(0


发表评论

邮箱地址不会被公开。*表示必填项