本文是基于由阎石主编、高等教育出版社2016年出版的教材
《数字电子技术基础(第六版)》 的学习笔记
数制和码制
概述
在用不同数码表示不同事物或事物的不同状态时,这些数码已经不再具有表示数量大小的含义了,它们只是不同事物的代号而已.我们将这些数码称之为代码,没有数量大小的含义。
几种常用的数制
- 十进制(D)
- 二进制(B)
- 八进制(O)
- 十六进制(H)
反码、补码和补码运算
在做减法运算时,如果两个数是用原码表示的,则首先需要比较两数绝对值的大小,然后以绝对值大的一个作为被减数、绝对值小的一个作为减数,求出差值,并以绝对值大的一个数的符号作为差值的符号。不难看出,这个操作过程比较麻烦。
补码的一种理解方式:例如,你在5点钟的时候发现自己的手表停在10点上了,因而必须把表针拨回到5点。这时有两种拨法:第一种拨法是往回拨5格,10-5 = 5,拨回到了 5点;另一种拨法是往前拨7格,10+ 7= 17。由于表盘的最大数只有12,超过12以后的“进位”将自动消失,于是就只剩下减去12以后的余数了,即17-12 = 5,也将表针拨回到了 5 点。这个例子说明,1 0 - 5 的减法运算可以用1 0 + 7 的加法运算代替。因为5 和7 相加正好等于产生进位的模数12,所以我们称7为-5对模12的补数,也称为补码。从这个例子中可以得出一个结论,就是在舍弃进位的条件下,减去某个数可以用加上它的补码来代替。
补码
反码
几种常用的编码
- 8421:恒权代码,对应四位的权重
- 余3码:如果把每一个余3码看作4位二进制数,则它的数值要比它所表示的十进制数码多3,故而将这种代码称为余3码。如果将两个余3 码相加,所得的和将比十进制数和所对应的二进制数多6 。因此,在用余3 码做十进制加法运算时,若两数之和为1 0 , 正好等于二进制数的1 6 , 于是便从高位自动产生进位 信号。0 和9 、1 和8 、2 和7 、3 和6 、4 和5 的余3 码互为反码,这对于求取对10的补码是很方便的。
- 2421 码:是一种恒权代码,它的0 和9 、1 和8 、2 和7 、3 和6 、4 和5 也互为反码,这个特点和余 3码相仿。
- 5211 码:是另一种恒权代码。计数器的分频作用中,如果按8 4 2 1 码接成十进制计数器,则连续输入计数脉冲时,4 个触发器输出脉冲对于计数脉冲的分频比从低 位到高位依次为5 :2 :1 :1 。可见, 5 2 1 1 码每一位的权正好与8 4 2 1 码十进制计数器4 个触发器输出脉冲的分频比相对应。
- 余3循环码(4位格雷码中的10个):是一种变权码,每一位的1在不同代码中并不代表固定的数值。它的主要特点是相邻的两个代码之间仅有一位的状态不同。
格雷码(Gray Code)又称循环码。每一位的状态变化都按一定的顺序循环。如果从 0000开始,最右边一位的状态 按0110顺序循环变化,右边第二位的状态按00111100顺序循环变化,右边第三位按 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 顺序循环变化。可见,自右向左,每一位状态循环中连续的0 、1 数目增加一 倍。由于4 位格雷码只有1 6 个,所以最左边一位的状态只有半个循环。格雷码的最大优点就在于相邻两个代码之间只有一位发生变化。这样在代码转换的过程中就不会产生过渡“噪声”。而在普通二进制代码的转换过程中,则有时会产生过渡噪声。例如,第四行的二进制代码 0 0 1 1 转换为第五行的0 1 0 0 过程中,如果最右边一位的变化比其他两位的变化慢,就会在一个极短的瞬间出现0101状态,这个状态将成为转换过程中出现的噪声。而在第四行的格雷码0010向第五行的0110转换过程中则不会出现过渡噪声。
逻辑代数基础
概述
在数字逻辑电路中,用1位二进制数码的0和1表示一个事物的两种不同逻辑状态。这种只有两种对立逻辑状态的逻辑关系称为二值逻辑。
所谓“逻辑”,在这里是指事物间的因果关系。当两个二进制数码表示不同的逻辑状态时,它们之间可以按照指定的某种因果关系进行推理运算。我们将这种运算称为逻辑运算。布尔代数称为开关代数或逻辑代数。本章所讲的逻辑代数就是布尔代数在二值逻辑电路中的应用。下面我们将会看到,虽然有些逻辑代数的运算公式在形式上和普通代数的运算公式雷同,但是两者所包含的物理意义有本质的不同。逻辑代数中也用字母表示变量,这种变量称为逻辑变量。逻辑运算表示的是逻辑变量以及常量之间逻辑状态的推理运算,而不是数量之间的运算,虽然在二值逻辑中,每个变量的取值只有0和1两种可能,只能表示两种不同的逻辑状态,但是我们可以用多变量的不同状态组合表示事物的多种逻辑状态,处理任何复杂的逻辑问题。
三种基本运算
逻辑代数的基本运算有与(AND)、或(OR)、非(NOT)三种。以“ • ”表 示与运算,以“+”表示或运算,以变量右上角的“'”表示非运算
最常见的复合逻辑运算有与非(N A N D ) 、或非(N O R ) 、与或非(A N D - N O R ) 、异或(E X C L U S I V E O R ) 、同或(E X C L U S I V E N O R ) 等