1、第1章 数字电路基础第1章 数字电路基础1.1 数制1.2 数制转换1.3 码制1.4 本章小结1.5 例题精选1.6 自我检测题第1章 数字电路基础当我们观察自然界中各种物理量时不难发现,就其变化规律的特点而言,不外乎有两大类。一类是物理量的变化在时间上和数量上都是离散的。也就是说,它们的变化在时间上和数值上是不连续的,总是发生在一系列离散的瞬间。我们把这一类物理量称为数字量,把表示数字量的信号称为数字信号(参见图1(a),并把工作在数字信号下的电路称为数字电路。例如:统计通过某一个桥梁的汽车数量,得到的就是一个数字量,最小数量单位的“1”代表一辆汽车,小于1的数值已经没有任何物理意义。数字
2、信号在电路中常表现为突变的电压或电流。第1章 数字电路基础另外一类是物理量的变化在时间上和数值上都是连续的信号。这一类物理量称为模拟量,把表示模拟量的信号称为模拟信号(参见图1(b),并把工作在模拟信号下的电子电路称为模拟电路。例如:热电偶工作时输出的电压或电流信号就是一种模拟信号,因为被测量的温度不可能发生突跳,所以测得的电压或电流无论在时间上还是数值上都是连续的。而且,这个信号在连续变化过程中的任何一个取值都有具体的物理意义,即表示一个相应的温度。第1章 数字电路基础图 1 典型的数字信号与模拟信号(a)数字信号;(b)模拟信号第1章 数字电路基础1.1.1 进位数制的基本概念进位数制的基
3、本概念进位数制也叫位置计数制,其计数方法是把数划分为不同的数位,当某一数位累计到一定数量之后,该位又从零开始,同时向高位进位。在这种计数制中,同一个数码在不同的数位上所表示的数值是不同的。进位计数制可以用少量的数码表示较大的数,因而被广泛采用。进位计数包含着两个基本因素:进位基数和数位的权值。1.1 数数 制制第1章 数字电路基础进位基数:在一个数位上,规定使用的数码符号的个数叫该进位计数制的进位基数或进位模数,记作R。例如十进制,每个数位规定使用的数码符号为0,1,2,9,共10个,故其进位基数R=10。数位的权值:某个数位上数码为1时所表征的数值,称为该数位的权值,简称“权”。各个数位的权
4、值均可表示成Ri的形式,其中R是进位基数,i是各数位的序号。数位按如下方法确定:整数部分,以小数点为起点,自右向左依次为0,1,2,n1;小数部分,以小数点为起点,自左向右依次为1,2,m。n是整数部分的位数,m是小数部分的位数。第1章 数字电路基础某个数位上的数码ai所表示的数值等于数码ai与该位的权值Ri的乘积。所以,R进制的数(N)R=an1an2a2a1a0a1a2am(1.1.1)又可以写成如下多项式的形式:式中:ai为第i位的系数,Ri为第i位的权。(1.1.2)第1章 数字电路基础1.1.2 常用进位计数制常用进位计数制1.十进制十进制 十进制是最经常使用的进位计数制。在十进制中
5、,每一位规定使用的数码为0,1,2,9,共10个数码,故其进位基数R为10。超过9的数必须用多位数表示,其中低位与相邻高位之间的关系为“逢十进一”。十进制数用下标“D”(Decimal)表示,也可省略。例如:(368.258)D=3102+6101+8100+2101+5102+8103第1章 数字电路基础十进制数中各位的权值为10i,i是各数位的序号。所以任何一个十进制数D均可展开为其中,ki是第i位的系数,它可以是09这10个数码中的任何一个。若整数部分的位数是n,小数部分的位数为m,则D可以包含从n1到0的所有正整数和从1到m的所有负整数。(1.1.3)第1章 数字电路基础2.二进制二进
6、制 目前在数字电路中应用最广泛的是二进制。在二进制中,每个数位规定使用的数码仅为0和1,共2个数码,所以其进位基数R为2。低位与相邻高位之间的关系为“逢二进一”。各位的权值为2i,i是各数位的序号。根据式(1.1.2),任何一个二进制数均可展开为(1.1.4)第1章 数字电路基础 二进制数用下标“B”(Binary)表示。例如:(1011.01)B=123+022+121+120+021+122二进制数只需两个状态便可表示,机器实现容易,但二进制书写太长。第1章 数字电路基础3.八进制八进制 八进制中,每一位上规定使用的数码为07八个不同的数码,故其进位基数为8。低位与相邻高位之间的关系为“逢
7、八进一”。各位的权值为8i,i是各数位的序号。任何一个八进制数均可展开为 八进制数用下标“O”(Octal)表示。例如:(152.47)O=182+581+280+481+782(1.1.5)第1章 数字电路基础4.十六进制十六进制 在十六进制中,每一位上有16个不同的数码,分别用09、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)表示。其进位基数为16。低位与相邻高位之间的关系为“逢十六进一”。各位的权值为16i,i是各个数位的序号。任何一个十六进制数均可展开为 十六进制数用下标“H”(Hexadecimal)表示,例如:(BD2.3C)H=B162+D161+216
8、0+3161+C16=11162+13161+2160+3161+12162(1.1.6)第1章 数字电路基础表1.1.1是十进制数与等值二进制数、八进制数、十六进制数的对照表。表表1.1.1 不同进制数的对照表不同进制数的对照表第1章 数字电路基础第1章 数字电路基础1.2.1 十进制数转换成其他进制数十进制数转换成其他进制数 一个任意的十进制数可以由整数部分和小数部分构成,若设整数部分为M1,小数部分为M2,则(M)10=(M1)10+(M2)10 将它转换为R进制,根据式(1.1.2)1.2 数制转换数制转换(1.2.1)第1章 数字电路基础于是整数部分为:(M1)10=an1Rn1+a
9、n2Rn2+a2R2+a1R1+A0r0(1.2.2)小数部分为:(M2)10=a1R1+a2R2+amRm(1.2.3)第1章 数字电路基础1.整数部分转换整数部分转换整数部分转换,采用基数连除法。把十进制整数M转换成R进制数的步骤如下:(1)将M除以R,记下所得的商和余数。(2)将上一步所得的商再除以R,记下所得商和余数。(3)重复做第(2)步,直到商为0。(4)将各个余数转换成R进制的数码,并按照和运算过程相反的顺序把各个余数排列起来,即为R进制的数。我们将这种方法取名为除以R取余法,逆序排列。第1章 数字电路基础例例1.2.1 (11)D=(?)B解解即(11)D=(1011)B第1章
10、 数字电路基础例例1.2.2 (427)D=(?)O解解 即(427)D=(653)O第1章 数字电路基础 例例1.2.3 (427)D=(?)H 解解即 (427)D=(1AB)H第1章 数字电路基础2.小数部分转换小数部分转换小数部分转换,采用基数连乘法。把十进制的纯小数M转换成R进制数的步骤如下:(1)将M乘以R,记下整数部分。(2)将上一步乘积中的小数部分再乘以R,记下整数部分。(3)重复做第(2)步,直到小数部分为0或者满足精度要求为止。(4)将各步求得的整数转换成R进制的数码,并按照和运算过程相同的顺序排列起来,即为所求的R进制数。我们将这种方法取名为乘以R取整法,顺序排列。第1章
11、 数字电路基础例例1.2.4 (0.85)D=(?)H解解 0.8516=13.613=D 最高位0.616=9.69=9 0.616=9.69=9最低位即(0.85)D=(0.D99)H第1章 数字电路基础例例1.2.5 (0.35)D=(?)O解解 0.358=2.8.2 最高位0.88=6.460.48=3.23 0.28=1.61 最低位即(0.35)D=(0.2631)O第1章 数字电路基础1.2.2 非十进制数转换成十进制数非十进制数转换成十进制数 不同数制之间的转换方法有若干种。把非十进制数转换成十进制数采用按权展开相加法。具体步骤是:首先把非十进制数写成按权展开的多项式,然后按
12、十进制数的计数规则求其和。第1章 数字电路基础例例1.2.6(2A.8)H=(?)D解解(2A.8)H=2161+A160+8161=32+10+1.5=(42.5)D第1章 数字电路基础 例例1.2.7(165.2)O=(?)D解解(165.2)O=182+681+580+281 =64+48+5+0.25=(117.25)D例例1.2.8 (10101.11)B=(?)D解解(10101.11)B=124+023+122+021+120+121+122=16+0+4+0+1+0.5+0.25=(21.75)D第1章 数字电路基础1.2.3 二进制数与八进制数、十六进制数之间的转换二进制数与
13、八进制数、十六进制数之间的转换 二进制数转换成八进制数(或十六进制数)时,其整数部分和小数部分可以同时进行转换。其方法是:以二进制数的小数点为起点,分别向左、向右,每三位(或四位)分一组。对于小数部分,最低位一组不足三位(或四位)时,必须在有效位右边补0,使其足位。然后,把每一组二进制数转换成八进制(或十六进制)数,并保持原排序。对于整数部分,最高位一组不足位时,可在有效位的左边补0,也可不补。第1章 数字电路基础例例1.2.9 (1011011111.10011)B=(?)O=(?)H解解 所以 (1011011111.10011)B=(1337.46)O即 (1011011111.1001
14、1)B=(2DF.98)H第1章 数字电路基础 例例1.2.10 (36.24)O=(?)B 解解 例例1.2.11 (3DB.46)H=(?)B 解解第1章 数字电路基础1.3.1 带符号数的代码表示带符号数的代码表示在数字系统中,通常使用二进制代码。在二进制代码中,直接表示正、负数的方法是:把一个数最高位作为符号位,用“0”表示“”,用“1”表示“”。符号位连同其后的数字位一起作为一个数,称为机器数,它表示的数值则称为这个机器数的真值。例如:X1=+0.1101;X2=0.11011.3 码码 制制第1章 数字电路基础表示成机器数为:X1=0.1101;X2=1.1101 在数字系统中,表
15、示机器数的方法很多,目前常用的有原码、反码和补码。第1章 数字电路基础1.原码原码原码表示法又称符号数值表示法。正数的符号位用“”表示;负数的符号位用“”表示;数值部分保持不变。例如:X=1101;(X)原=11101第1章 数字电路基础2.反码反码 反码的符号表示与原码相同,正数反码的数值部分保持不变,而负数反码的数值是原码的数值按位求反。例如:X1=+1101 则(X1)反=01101=1101X2=1101则(X2)反=10010第1章 数字电路基础3.补码补码补码的符号表示与原码相同。正数补码的数值部分也与原码相同。负数的补码是这样得到的:将数值部分按位求反,再在最低位加1。例如:X1
16、=+1101则(X1)补=(X1)原=(X1)反=01101=1101X2=1101则(X2)补=10011第1章 数字电路基础1.3.2 带符号数的加、减运算带符号数的加、减运算当两个二进制数码表示两个数量大小时,它们之间可以进行数值运算,这种运算称为算术运算。二进制算术运算和十进制算术运算的规则基本相同,唯一的区别在于二进制是“逢二进一”,而不是十进制数的“逢十进一”。例如,两个二进制数1001和0101的算术运算有第1章 数字电路基础第1章 数字电路基础从上面的例子中可以看出,二进制算术运算有两个特点,即二进制数的乘法运算可以通过若干次的“被乘数(或零)左移1位”和“被乘数(或零)与部分
17、积相加”这两种操作完成;而二进制的除法运算能通过若干次的“除数右移1位”和从“被除数或余数中减去除数”这两种操作完成。第1章 数字电路基础在做减法运算时,如果两个数是用原码表示的,则首先需要比较两个数的绝对值大小,然后以绝对值大的一个作为被减数,绝对值小的作为减数,求出差值,并以绝对值大的一个数的符号作为差值的符号。不难看出,这个操作过程比较复杂,而且需要使用数值比较电路和减法运算电路。如果能用两数的补码相加代替上述的减法运算,那么计算过程中就无需使用数值比较电路和减法运算电路,从而使运算器的电路结构大为简化。第1章 数字电路基础下面说明补码的运算原理。我们先讨论一个生活中常见的事例。例如,你
18、在5点钟的时候发现自己的手表停在10点上。要想调整手表有两种方法:第一种拨法是把时针往回拨5格,105=5;另一种拨法是往前拨7格,10+7=17,由于表盘的最大数只有12,超过12以后的“进位”将自动消失,于是就只剩下减去12的余数了,即1712=5,也将指针拨回到了5点。这个例子说明,105的减法运算可以用10+7的加法运算代替。因为5和7相加正好等于进位的模数12,所以我们称7为5对模12的补数,也称为补码。第1章 数字电路基础从这个例子中可以得出一个结论,就是在舍去进位的条件下,减去某个数可以用加上它的补码来替代。这个结论同样也适用于二进制数的运算。例如:10110111=0100的减
19、法运算,在舍去进位的条件下,可以用1011+1001=0100的加法运算代替。因为4位二进制数的进位基数是16(10000),所以1001(9)恰好是0111(7)对模16的补码。第1章 数字电路基础基于上述原理,对于有效数字(不包括符号位)为n位的二进制数N,它的补码表示方法为即正数(当符号位为0时)的补码与原码相同,负数(当符号位为1时)的补码等于2nN,符号位保持不变。(1.3.1)第1章 数字电路基础为了避免在求补码的过程中做减法运算,通常是先求出N的反码(N)INV,然后在负数的反码上加1而得到补码。二进制数的反码(N)INV是这样定义的:由上式可知,当N为负数时,(N)INV+N=
20、2n1,而2n1是n位全为1的二进制数,所以只要将N中每一位的1改为0、0改为1,就得到了(N)INV。(1.3.2)第1章 数字电路基础例例1.3.1 写出带符号位二进制数00011010(+26)、10011010(26)、00101101(+45)和10101101(45)的补码和反码。解解 根据式(1.3.1)和式(1.3.2)得到原码反码补码00011010 00011010 00011010100110101110010111100110001011010010110100101101101011011101001011010011第1章 数字电路基础表1.3.1是带符号位的3位二
21、进制数原码、反码和补码的对照表。其中规定用1000作为8的补码,而不用来表示0。第1章 数字电路基础表表1.3.1 原码、反码和补码的对照表原码、反码和补码的对照表第1章 数字电路基础例例1.3.2 用二进制补码运算求出13+10,1310,13+10和1310。解解 由于13+10和1310的绝对值为23,因此必须用有效数字为5位的二进制数才能表示,再加上一位符号位,就得到6位的二进制补码。+13的二进制补码为001101(最高位为符号位),13的二进制补码为110011,+10的二进制补码为001010,10的二进制补码为110110。计算结果分别为第1章 数字电路基础第1章 数字电路基础
22、1.3.3 十进制数的常用代码十进制数的常用代码1.二二十进制码制十进制码制 如果用二进制码来表示“09”这10个数符,就必须用4位二进制码元,而4位二进制码元共有16种组合(00001111),取其中10种组合来表示“09”的编码方案有很多种,一般分为有权码和无权码。有权码(恒权代码)是指4位二进制数中的每一位都有对应固定的“权值”,按权展开为所表示的十进制数;无权码(变权代码)是指4位二进制数中的每一位无固定的“权值”,而遵循另外的规则。表1.3.2列出了几种常见的十进制代码,它们的编码规则各不相同。第1章 数字电路基础表表1.3.2 几种常用的十进制代码几种常用的十进制代码第1章 数字电
23、路基础1)8421码 8421码简称为BCD码(Binary CodedDecimal),是十进制代码中最常用的一种。2)余3码 余3码是8421码的每个码组加0011形成的。3)2421码 2421码的各位权值分别为2、4、2、1,2421码是有权码,它的0和9,1和8,2和7,3和6,4和5互为反码,也是一种自补代码。第1章 数字电路基础4)5211码5211码也是一种恒权代码。它的各位权值分别为5、2、1、1。5)余3循环码余3循环码是一种变权码,每一位的1在不同的代码中不代表固定的数值。它的主要特点是相邻的两个代码之间仅有一位的状态不同。第1章 数字电路基础例例1.3.3 (902.4
24、5)D=(?)8421 BCD 解解 (902.45)D=(100100000010.01000101)8421 BCD 若把一种BCD码转换成另一种BCD码,应先求出某种BCD码代表的十进制数,再将该十进制数转换成另一种BCD码。第1章 数字电路基础 例例1.3.4 (01001000.1011)余3BCD=(?)2421 BCD 解解 (01001000.1011)余3BCD=(15.8)D=(00011011.1110)2421 BCD 若将任意进制数用BCD码表示,应先将其转换成十进制数,再将该十进制数用BCD码表示。例例1.3.5(73.4)8=(?)8421 BCD 解解 (73.
25、4)8=(59.5)D=(01011001.0101)8421 BCD第1章 数字电路基础2.可靠性代码可靠性代码1)格雷(Gray)码 具有如下特点的代码叫格雷码:任何相邻的两个码组(包括首、尾两个码组)中,只有一个码元不同。在编码技术中,把两个码组中不同的码元的个数叫做这两个码组的距离,简称码距。由于格雷码的任意相邻的两个码组的距离均为1,故又称之为单位距离码。另外,由于首尾两个码组也具有单位距离特性,因而格雷码也叫循环码。格雷码属于无权码。第1章 数字电路基础格雷码的编码方案很多,典型的格雷码如表1.3.3所示,表中同时给出了4位自然二进制码。格雷码的单位距离特性可以降低其产生错误的概率
26、,并且能提高其运行速度。例如,为完成十进制数7加1的运算,当采用四位自然二进制码时,计数器应由0111变为1000,由于计数器中各元件特性不可能完全相同,因而各位数码不可能同时发生变化,可能会瞬间出现过程性的错码。变化过程可能为01111111101110011000。第1章 数字电路基础虽然最终结果是正确的,但在运算过程中出现了错码1111,1011,1001,这会造成数字系统的逻辑错误,而且使运算速度降低。若采用格雷码,由7变成8,只有一位发生变化,就不会出现上述错码,而且运算速度会明显提高。十进制中的余3循环码就是取4位格雷码中的10个代码组成的,它仍然具有格雷码的优点,即两个相邻的代码
27、之间仅有一位不同。第1章 数字电路基础表表1.3.3 典型的典型的Gray码码第1章 数字电路基础2)奇偶校验码 奇偶校验码是一种可以检测一位错误的代码。它由信息位和校验位两部分组成。信息位可以是任何一种二进制代码。它代表着要传输的原始信息。校验位仅有一位,它可以放在信息位的前面,也可以放在信息位的后面。其编码方式有两种:使每一个码组中信息位和校验位的“1”的个数之和为奇数,称为奇校验。使每一个码组中信息位和校验位的“1”的个数之和为偶数,称为偶校验。表1.3.4给出了8421 BCD奇偶校验码。第1章 数字电路基础表表1.3.4 带奇、偶校验的带奇、偶校验的8421 BCD码码第1章 数字电
28、路基础3)字符代码 对各个字母和符号编制的代码叫字符代码。字符代码的种类繁多,目前在计算机和数字通信系统中被广泛采用的是美国信息交换标准代码(American Standard Code for Information Interchange,ASCII码),其编码表如表1.3.5所示。第1章 数字电路基础表表1.3.5 美国信息交换标准代码美国信息交换标准代码(ASCII码码)第1章 数字电路基础ASCII码是一组7位二进制代码(B7B6B5B4B3B2B1),共128个,其中包括表示数字的10个代码,表示大、小写英文字母的52个代码,表示各种符号的32个代码以及34个控制代码。从表1.3.
29、5中读码时,先读列码B7B6B5,再读行码B4B3B2B1,则B7B6B5B4B3B2B1即为某字符的7位ASCII码。例如字母K的列码是100,行码是1011,所以K的七位ASCII码是1001011。第1章 数字电路基础这一章所讲的主要内容是数制与码制。(1)数制是人们对数量计数的一种统计规则。任何一种进位计数包含基数和位权两个基本因素。基数为R的数制为R进制,进位规则:“逢R进一”。有0,1,R1个数码(数符)。按权位展开为(R取2的正整数)。1.4 本章小结本章小结第1章 数字电路基础R进制转为十进制只要按权位展开()就很容易得到。十进制转为R进制可将整数部分和小数部分分别考虑,整数部
30、分按除以R取余法,逆序排列;小数部分按乘以R取整法,顺序排列。第1章 数字电路基础(2)编码就是用代码来表示给定的数字和信息符号。信息符号可以是十进制数符、字符、运算符号等。在数字系统中,基本使用二进制代码,目前常用的有原码、反码和补码。十进制的二进制编码可以分为两大类:一类是有权码,常用的有8421 BCD、2421 BCD、5211 BCD等,这些码可以按权位展开为所表示的十进制数;另一种是无权码,例如格雷码,这种编码是一种可靠性编码。第1章 数字电路基础2.本章难点内容本章难点内容 熟悉各种数制之间的相互转换方法,特别是二十进制、二八和二十六进制之间转换的简便方法。由于数字电路的基本运算
31、都采用二进制运算,因而这一章里还详细地介绍了二进制数的符号在数字电路中的表示方法,原码、反码以及补码的概念,以及采用补码进行带符号位数加法运算的原理。第1章 数字电路基础3.本章需注意的问题本章需注意的问题 在采用补码进行带符号位数加法运算的时候,一定要注意:在两个同符号数相加时,它们的绝对值之和不可以超过有效数字位所能表示的最大值,否则会得出错误的计算结果。各种码制之间转换时,也要注意:(1)若把一种BCD码转换成另一种BCD码,应先求出某种BCD码代表的十进制数,再将该十进制数转换成另一种BCD码。(2)若将任意进制数用BCD码表示,应先将其转换成十进制数,再将该十进制数用BCD码表示。第
32、1章 数字电路基础例例1.5.1 快速转换法:拆分法。1.5 例题精选例题精选第1章 数字电路基础例例1.5.2 (11.375)D=(?)B即 (11)D=(1011)B 即 (0.375)D=(0.011)B故 (11.375)D=(1011.011)B第1章 数字电路基础例例1.5.3 (375.64)8=(011 111 101.110 100)2例例1.5.4 (ED8.2F)16=(1110 1101 1000.0010 1111)2例例1.5.5 用二进制补码运算求出13+7 和137。解解 由于137的绝对值为20,因而必须用有效数字为5位的二进制数才能表示,再加上一位符号位,
33、就得到6位的二进制补码。13的二进制补码为1 10011(最高位为符号位),+7的二进制补码为0 00111,7的二进制补码为1 11001。计算结果分别为第1章 数字电路基础第1章 数字电路基础 1.要将600份文件顺序编码,如果采用二进制代码,最少需要几位?如果改用八进制或十六进制代码,则最少各需要几位?1.6 自自 我我 检检 测测 题题第1章 数字电路基础2.按要求完成下列数制之间的转换。(1)(01101)2=()10 (2)(10010111)2=()10 (3)(58.26)10=()2 (4)(1110.0111)2=()8 (5)(1001.1101)2=()8=()16 (
34、6)(3D.BE)16=()8=()2=()10第1章 数字电路基础 3.写出下列二进制的原码、反码和补码。(1)(+1011)2 (2)(1101)2 (3)(00101)2 4.写出下列带符号位二进制数(最高位为符号位)的反码和补码。(1)(011011)2 (2)(111010)2 (3)(101011)2 5.用8位的二进制补码表示下列十进制数。(1)+17 (2)+28 (3)47 (4)121第1章 数字电路基础 6.计算下列用补码表示的二进制代数和。如果和为负数,请求出负数的绝对值。(1)01001101+00100110 (2)11011101+01001011 (3)10011101+01100110 (4)11111001+100001000 7.用二进制补码运算下列各式。(提示:所用补码的有效位数应足够表示代数和的最大绝对值。)(1)8+11 (2)2311 (3)2025 (4)1614