1第一章数制与编码内容提要:(1)模拟信号、数字信号及其之间的区别,以及数字电路的特点。(2)进位计数规则和各种不同数制之间的转换方法。(3)二进计数制的基本特点及其在计算机中的表示形式。(4)加权码、非加权码及字符代码21.1数字电路基础知识主要内容:模拟信号与数字信号的概念及区别数字电路的特点31.1.1模拟信号与数字信号模拟信号是指时间上和幅度上均为连续取值的物理量。在自然环境下,大多数物理信号都是模拟量。如温度是一个模拟量,某一天的温度在不同时间的变化情况就是一条光滑、连续的曲线:4数字信号是指时间上和幅度上均为离散取值的物理量。可以把模拟信号变成数字信号,其方法是对模拟信号进行采样,并用数字代码表示后的信号即为数字信号。用逻辑1和0表示的数字信号波形如下图所示:51.1.2数字电路的特点数字电路的结构是以二值数字逻辑为基础的,其中的工作信号是离散的数字信号。电路中的电子器件工作于开关状态。数字电路分析的重点已不是其输入、输出间波形的数值关系,而是输入、输出序列间的逻辑关系。所采用的分析工具是逻辑代数,表达电路的功能主要是功能表、真值表、逻辑表达式、布尔函数以及波形图。数字系统一般容易设计。信息的处理、存储和传输能力更强。数字系统的精确度及精度容易保存一致。数字电路抗干扰能力强。数字电路容易制造在IC芯片上。61.2数制主要内容:进位计数制、基数与权值的概念二进制计数法及构造方式最高有效位、最低有效位的概念二进制数的加、减、乘、除运算八进制和十六进制的计数方法7表示数码中每一位的构成及进位的规则称为进位计数制,简称数制。进位计数制也叫位置计数制。在这种计数制中,同一个数码在不同的数位上所表示的数值是不同的。一种数制中允许使用的数码符号的个数称为该数制的基数。记作R某个数位上数码为1时所表征的数值,称为该数位的权值,简称“权”。8利用基数和“权”的概念,可以把一个R进制数D用下列形式表示:121012120112011()RnnmRnnmnnmniiimDaaaaaaaaRaRaRaRaRaR位置计数法多项式表示法,也叫按权展开式91.2.1十进制数十进制的基数R为10,采用十个数码符号0、1、2、3、4、5、6、7、8、9十进制的按权展开式为:如十进制数2745.214可表示为:11010niiimDa3210123210710410510210110410101.2.2二进制数所谓二进制,就是基数R为2的进位计数制,它只有0和1两个数码符号。二进制的按权展开式为:如二进制数1011.1012可表示为:122niiimDa32101232101011.1011202121212021280210.500.12511.62511用N位二进制可实现2N个计数,可表示的最大数是2N-1例1-1:用8位二进制能表示的最大数是多少?解:8102212125511111111N12二进制数的加、减、乘、除四则运算二进制的计数规则是:低位向相邻高位“逢二进一,借一为二”。二进制加法:二进制的加法运算有如下规则:0+0=00+1=11+0=11+1=10(“逢二进一”)例:1011.1012+10.012=?1011.101+10.011101.11113二进制减法:二进制的减法运算有如下规则:0–0=01–0=11–1=00–1=1(“借一当二”)例:1101.1112–10.012=?1101.11110.011011.101141.2.3八进制数八进制数的基数R是8,它有0、1、2、3、4、5、6、7共八个有效数码。八进制的按权展开式为:八进制的计数规则是:低位向相邻高位“逢八进一,借一为八”。188niiimDa表1-4八进制及其对应的二进制形式八进制01234567二进制00000101001110010111011115例:对八进制数,从08数到308解:所求的八进制数的序列如下所示(注意,没有使用下标8)。0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,30161.2.4十六进制数十六进制数的基数R是16,它有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共十六个有效数码。十六进制的按权展开式为:十六进制的计数规则是:低位向相邻高位“逢十六进一,借一为十六”。11616niiimDa表1-5十六进制数及其对应的十进制数十六进制0123456789ABCDEF十进制012345678910111213141517例:对十六进制数,从016数到3016解:所求的十六进制数的序列如下所示(注意,没有使用下标16)。0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F,30181.3数制转换主要内容:二进制与八进制、十六进制之间的相互转换方法十进制与二进制、八进制、十六进制的相互转换方法把一个数从一种数制转换到其他数制的转换方法191.3.1二进制数与八进制数的相互转换将二进制转换为八进制将整数部分自右往左开始,每3位分成一组,最后剩余不足3位时在左边补0;小数部分自左往右,每3位一组,最后剩余不足3位时在右边补0;然后用等价的八进制替换每组数据例:将二进制数10111011.10112转换为八进制数。20将八进制转换为二进制对每位八进制数,只需将其展开成3位二进制数即可例1-9:将八进制数67.7218转换为二进制数。解:对每个八进制位,写出对应的3位二进制数。211.3.2二进制数与十六进制数的相互转换将二进制转换为十六进制:将整数部分自右往左开始,每四位分成一组,最后剩余不足四位时在左边补0;小数部分自左往右,每四位一组,最后剩余不足四位时在右边补0;然后用等价的十六进制替换每组数据。例:将二进制数111010111101.1012转换为十六进制数。22将十六进制转换为二进制对每位十六进制数,只需将其展开成4位二进制数即可。例1-11:将十六进制数1C9.2F16转换为二进制数。解:对每个十六进制位,写出对应的4位二进制数。231.3.3十进制数与任意进制数的相互转换十进制数与任意进制数之间的转换方法有多项式替代法和基数乘除法。非十进制数转换为十进制数:把非十进制数转换成十进制数采用按权展开相加法。具体步骤是,首先把非十进制数写成按权展开的多项式,然后按十进制数的计数规则求其和。例1-12:将二进制数101011.1012转换成十进制数。543210123210101011.10112021202121212021232080210.50.12543.62624例1-13:将八进制数165.28转换成十进制数。例1-14:将十六进制数2A.816转换成十进制数。2101810165.218685828644850.25117.2510116102.82161681632100.542.5AA25十进制数转换为其它进制数对于既有整数部分又有小数部分的十进制数转换成其它进制数,首先要把整数部分和小数部分分别进行转换,然后再把两者的转换结果相加。整数转换:整数转换,采用基数连除法,即除基取余法。把十进制整数N转换成R进制数的步骤如下:将N除以R,记下所得的商和余数;将上一步所得的商再除以R,记下所得的商和余数;重复做第2步,直至商为0;将各个余数转换成R进制的数码,并按照和运算过程相反的顺序把各个余数排列起来(把第一个余数作为LSB,最后一个余数作为MSB),即为R进制的数。26例1-15:将3710转换成等值二进制数。解:采用除2取余法,具体的步骤如下:37÷2=18……余数1→LSB18÷2=9……余数0↑9÷2=4……余数1↑4÷2=2……余数0↑2÷2=1……余数0↑1÷2=0……余数1→MSB按照从MSB到LSB的顺序排列余数序列,可得:3710=100101227例1-16:将26610转换成等值八进制数。解:采用除8取余法,具体的步骤如下:266÷8=33……余数2→LSB33÷8=4……余数1↑4÷8=0……余数4→MSB按照从MSB到LSB的顺序排列余数序列,可得:26610=412828例1-17:将42710转换成等值十六进制数。解:采用除16取余法,具体的步骤如下:427÷16=26……余数11=B→LSB26÷16=1……余数10=A↑1÷16=0……余数1=1→MSB按照从MSB到LSB的顺序排列余数序列,可得:42710=1AB16十进制数除16的各次余数形成了十六进制数,且当余数大于9时,用字母A~F表示。29纯小数转换纯小数转换,采用基数连成法,即乘基取整法。把十进制的纯小数M转换成R进制数的步骤如下:将M乘以R,记下整数部分;将上一步乘积中的小数部分再乘以R,记下整数部分;重复做第2步,直至小数部分为0或者满足预定精度要求为止;将各步求得的整数部分转换成R进制的数码,并按照和运算过程相同的顺序排列起来,即为所求的R进制数。30例1-18:将十进制小数0.562510转换成等值的二进制数小数。解:采用乘2取整法,具体的步骤如下:0.5625×2=1.125……整数1→MSB0.125×2=0.250……整数0↓0.250×2=0.50……整数0↓0.50×2=1.00……整数1→LSB按照从MSB到LSB的顺序排列余数序列,可得:0.562510=0.1001231例1-19:将十进制小数0.3510转换成等值的八进制数小数。解:采用乘8取整法,具体的步骤如下:0.35×8=2.8……整数2→MSB0.8×8=6.4……整数6↓0.4×8=3.2……整数3↓0.2×8=1.6……整数1↓︰:→LSB按照从MSB到LSB的顺序排列余数序列,可得:0.3510=0.2631…832例1-21:将十进制数17.2510转换成等值的二进制数小数。解:此题的十进制数既有整数部分又有小数部分,则可用前述的“除基取余”及“乘基取整”的方法分别将整数部分和小数部分进行转换,然后合并起来就可得到所求的结果。具体的步骤如下:17.2510=〉1710+0.2510↓↓100012+0.012=〉10001.012所以,17.2510=10001.012331.4二进制编码主要内容:用BCD码表示十进制数的方法BCD码和自然二进制码的区别8421、2421等BCD码格雷码、余3码各种编码与二进制码的转换方法ASCII码原码、反码与补码341.4.1加权二进制码加权码是每个数位都分配了权或值的编码。用四位二进制数表示一位十进制数的方法,统称为十进制数的二进制编码,简称BCD码。常用的加权二进制编码:8421BCD码代码中从左到右的各位权值分别表示8、4、2、12421BCD码代码中从左到右的各位权值分别是2、4、2、14221BCD各位权值分别是4、2、2、15421BCD各位权值分别是5、4、2、135用BCD码表示十进制数,只要把十进制数的每一位数码,分别用BCD码取代即可。若要知道BCD码代表的十进制数,只要BCD码以小数点为起点向左、右每四位分成一组,再写出每一组代码代表的十进制数,并保持原排序即可。