
《第一章数制与编码》由会员分享,可在线阅读,更多相关《第一章数制与编码(79页珍藏版)》请在文档大全上搜索。
1、数字逻辑数字逻辑软件学院软件学院序言序言什么是数字系统?什么是数字系统?为什么要使用数字系统?为什么要使用数字系统?数字技术的由来数字技术的由来数字逻辑是重要的专业基础数字逻辑是重要的专业基础数字逻辑电路的种类和研究方法数字逻辑电路的种类和研究方法数字逻辑:数字逻辑: 用二进制为基础的数字化技术,解决数字系统用二进制为基础的数字化技术,解决数字系统中的逻辑问题。以逻辑代数理论为代表。中的逻辑问题。以逻辑代数理论为代表。什么是数字系统?什么是数字系统?模拟量(连续变化的物理量)模拟量(连续变化的物理量)n连续的连续的n时间上的连续时间上的连续n任意时刻有一个相对的值任意时刻有一个相对的值n量上的
2、连续量上的连续n变量任意时刻可以是在一定范围内的任意值变量任意时刻可以是在一定范围内的任意值n例如:水位,例如:水位,电压,电流,温度,亮度,颜色电压,电流,温度,亮度,颜色n缺点缺点n很难度量很难度量n容易受噪声的干扰容易受噪声的干扰n难以保存难以保存n优点优点:用精确的值表示事物用精确的值表示事物什么是数字系统?什么是数字系统?数字量数字量非连续的(离散的)非连续的(离散的)时间上的离散时间上的离散变量只在某些时刻有定义变量只在某些时刻有定义量上的离散量上的离散变量只能是有限集合的一个值变量只能是有限集合的一个值例如:数值,开关位置,数字逻辑例如:数值,开关位置,数字逻辑n 优点优点n 更
3、多的灵活性,更快,更精确的计更多的灵活性,更快,更精确的计算算n 容易实现存储设备容易实现存储设备n 误差监测和修正误差监测和修正n 容易最小化容易最小化什么是数字系统?模-数/数-模转换 (Analog & Digital)模拟世界A/D数字处理 和存储系统D/An数字系统:使用数字量来传递和加工处理信息的实际工程系统 为什么要用数字系统?数字系统完全能够满足实时系统要求低成本、标准化、通用性和灵活性信息化时代完成数字信息加工需要满足数值的科学计算数字系统在国民经济各个领域中的广泛应用例如:音乐(CD,MP3)、电影(MPEG,RM,DVD)、 数字电视、数字照相机、数字摄影机、手机
4、、 数控系统、智能机器人等数码相机移动电话WAP电话电视机智能电话双向寻呼机机顶盒MP3PDA数码摄像机常见的数字系统数字逻辑是重要的专业基础计算机硬件课程的必修先续课程 例如:计算机组成原理、计算机系统结构、 微型机与接口、单片机原理及其应用、 数字系统设计自动化等。n硬件是软件运行必要环境n硬件设计是协同设计(co-design)重要手段之一数字逻辑电路的种类和研究方法“数字逻辑”含义 研究数值的逻辑加工和运算的电路分类:数字逻辑电路组合逻辑时序逻辑同步逻辑电路异步逻辑电路n研究方法n分析n综合或逻辑设计学习的目的学习的目的 学以致用学以致用 通过计算机系统中用到的典型逻辑电路的设通过计算
5、机系统中用到的典型逻辑电路的设计、分析,达到:计、分析,达到:掌握逻辑电路设计和分析的基本方法掌握逻辑电路设计和分析的基本方法学会逻辑电路分析、设计学会逻辑电路分析、设计熟悉计算机系统中常用熟悉计算机系统中常用IC器件的性能及设计方法器件的性能及设计方法重视理论学习重视理论学习重视实践环节,多动手重视实践环节,多动手掌握研究型的学习方法,学会独立思考掌握研究型的学习方法,学会独立思考熟练掌握典型电路的分析方法和设计方法熟练掌握典型电路的分析方法和设计方法作业和实验独立完成作业和实验独立完成 成绩考核:成绩考核: (出勤)(实验)(期末考试)(出勤)(实验)(期末考试)学习方法学习方法 理论、实
6、验、创新理论、实验、创新集成电路:集成电路: 集成电路(集成电路(integrated circuit)是一种微型)是一种微型电子器件电子器件或或部件。采用一定的工艺,把一个电路中所需的部件。采用一定的工艺,把一个电路中所需的晶体管、二极管晶体管、二极管、电阻、电容和电感、电阻、电容和电感等元件及等元件及布线布线互连一起,制作在一小块或互连一起,制作在一小块或几小块几小块半导体半导体晶片或介质基片上,然后封装在一个管壳内,成晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构。为具有所需电路功能的微型结构。 其中所有元件在结构上已组成一个整体,使电子元件向着其中所有元件在结构
7、上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。它在电路中微小型化、低功耗和高可靠性方面迈进了一大步。它在电路中用字母用字母“IC”表示。表示。 集成电路发明者为杰克集成电路发明者为杰克基尔比(基于基尔比(基于硅硅的集成电路)和的集成电路)和罗伯特罗伯特诺伊思(基于诺伊思(基于锗锗的集成电路)。的集成电路)。 当今半导体工业大多数应用的是基于硅的集成电路。当今半导体工业大多数应用的是基于硅的集成电路。学习方法学习方法 理论、实验、创新理论、实验、创新学习方法学习方法 理论、实验、创新理论、实验、创新注意事项:注意事项:1 1、个人安全、个人安全2 2、设备安全、设备
8、安全3 3、遵守纪律、遵守纪律4 4、规章操作、规章操作学习方法学习方法 理论、实验、创新理论、实验、创新学习方法学习方法 理论、实验、创新理论、实验、创新 第第1 1章章 数制与编码数制与编码1.1 1.1 进位计数制进位计数制1.2 1.2 编码编码 1 1.1 .1 进位计数制进位计数制1 1、数制:、数制: 是人们对数量计数的一种统计规律,是进位计数制的简是人们对数量计数的一种统计规律,是进位计数制的简称。包含两个基本要素:基数和位权。称。包含两个基本要素:基数和位权。2 2、计数方法:、计数方法: 把数划分为不同的数位,当某一位累计一定数量之后,把数划分为不同的数位,当某一位累计一定
9、数量之后,向高位进位,该位又从零开始。向高位进位,该位又从零开始。 在这种记数制中,同一个在这种记数制中,同一个数码在不同的数位上所表示的数值不同。进位计数制可以用数码在不同的数位上所表示的数值不同。进位计数制可以用少量的数码表示较大的数。少量的数码表示较大的数。3 3、常用数制:、常用数制: 日常生活:十进制、十二进制、二十四进制等等日常生活:十进制、十二进制、二十四进制等等 数字系统:二进制、八进制、十六进制数字系统:二进制、八进制、十六进制一、基本概念一、基本概念5 5、位权:、位权: 在一个进位计数制表示的数中,处在不同数位的数码,在一个进位计数制表示的数中,处在不同数位的数码,代表着
10、不同的数值;某一个数位的数值,是由这一位数码代表着不同的数值;某一个数位的数值,是由这一位数码的值,乘上处在这位的一个固定常数。不同数位上的固定的值,乘上处在这位的一个固定常数。不同数位上的固定常数称为位权值,简称位权。常数称为位权值,简称位权。 R进位制数如何表示?进位制数如何表示?4 4、基数:、基数: 计数制中使用的数码个数,称为该进位计数制的进位基计数制中使用的数码个数,称为该进位计数制的进位基数,记作数,记作R。一般而言,一般而言,R进位制的基数为进位制的基数为R,就有,就有R个数码。个数码。包含包含0 0、1 1、R2 2、R1 1等数码,进位规律是等数码,进位规律是“逢逢R进进一
11、一”,即每个数位计满,即每个数位计满R就向高位进就向高位进1 1,称为,称为R进位计数值。进位计数值。 1 1.1 .1 进位计数制进位计数制一、基本概念一、基本概念 1 1.1 .1 进位计数制进位计数制二、数的表示方法二、数的表示方法1 1、并列表示(位置计数法)、并列表示(位置计数法) (N)R =(Kn-1Kn-2 K1K0 K-1K-2 K-m )R 其中:其中:n为整数部分的数位,为整数部分的数位,m为小数部分的数位,为小数部分的数位,R表示基数,表示基数,R=2=2、8 8、1010、1616等,可以用相应的字母表等,可以用相应的字母表示:示:B、O、D、H;Ki为不同数位的数值
12、。为不同数位的数值。 0 0 Ki ( R -1-1)例如:例如: 十进制数:十进制数:26752675、0.4210.421、837.25837.25 1 1.1 .1 进位计数制进位计数制二、数的表示方法二、数的表示方法2 2、多项式表示(以权展开式)、多项式表示(以权展开式) (N)R = Kn-1Rn-1+Kn-2Rn-2+K2R2+K1R1 +K0R0+K-1R-1+K-2R-2+K-mR-m 其中:其中:m、n为正整数,为正整数, n为整数部分的数位,为整数部分的数位,m m为小数部为小数部分的数位,分的数位,R为基数,为基数,Ki i为不同数位的数值,为不同数位的数值,0 0Ki
13、( (R-1)-1);Ri是位权,是位权, - - m i n -1-1。R R1 1R R)()( n nm mi ii ii iR RK KN N(837.25)(837.25)10 10 = 8 8* *10102 2+3+3* *10101 1+7+7* *10100 0+2+2* *1010-1-1+5+5* *1010-2-2例如:例如:三、数字系统中常用进位制三、数字系统中常用进位制 1 1、十进制、十进制210210、389.35389.35、(78.56)(78.56)1010、(7182)(7182)D D 1 1.1 .1 进位计数制进位计数制 十进制是人们最熟悉的数制,
14、但机器实现十十进制是人们最熟悉的数制,但机器实现十分困难。分困难。例如例如: : “逢十进一逢十进一”。具有。具有0 0,1 1,2 2,9 9 十十个代码。表示大于个代码。表示大于9 9的数则应采用进位制表示。的数则应采用进位制表示。2 2、二进制、二进制表示方法:表示方法: R =2 2的数制为二进制。二进制数值的表示只的数制为二进制。二进制数值的表示只有有“1 1”和和“0 0”,进位规律是,进位规律是“逢二进一逢二进一”,可,可表示为:表示为: ( (N) )2 = Kn-12n-1+Kn-22n-2+K121 +K020+K-12-1+K-22-2+K-m2-m三、数字系统中常用进位
15、制三、数字系统中常用进位制 1 1.1 .1 进位计数制进位计数制2 21 12 2)2 2()( n nm mi ii ii iK KN N 三、数字系统中常用进位制三、数字系统中常用进位制 1 1.1 .1 进位计数制进位计数制2 2、二进制、二进制运算规律:运算规律: 加法律:加法律:0+00+0=0 0、0+10+1=1+01+0=1 1、1+11+1=1010 乘法律:乘法律:0 0* *0 0=0 0、0 0* *1 1=1 1* *0 0=0 0、1 1* *1 1=1 1 二进制的运算规律简单,只要记住二进制的运算规律简单,只要记住“和和”与与“积积”的运算规律即可。的运算规律
16、即可。三、数字系统中常用进位制三、数字系统中常用进位制 1 1.1 .1 进位计数制进位计数制2 2、二进制、二进制物理实现:物理实现: 由于二进制只可能有两种数值由于二进制只可能有两种数值0 0、1 1,在数字,在数字系统中,可用电子器件的两种不同的状态来表示系统中,可用电子器件的两种不同的状态来表示一位二进制数,实现起来非常方便。一位二进制数,实现起来非常方便。 “0 0”:晶体管导通、低电位:晶体管导通、低电位 “ “1 1”:晶体管截止、高电位:晶体管截止、高电位 优点:实现简单、易行、可靠,存储、传送优点:实现简单、易行、可靠,存储、传送方便。方便。 VCC Rb T VO RC V
17、I 三、数字系统中常用进位制三、数字系统中常用进位制 1 1.1 .1 进位计数制进位计数制2 2、二进制、二进制缺点缺点 计数位数长,书写位数太多,不便记忆。计数位数长,书写位数太多,不便记忆。 例如:例如: (0101) (0101)2 2、 (110.01001) (110.01001)2 2、 (0.011) (0.011)2 2 (101101110100110010110) (101101110100110010110)2 2为此,引入八进制、十六进制数作为二进数的缩写。为此,引入八进制、十六进制数作为二进数的缩写。八进制八进制 二进制二进制0 00000001 10010012
18、20100103 30110114 41001005 51011016 61101107 7111111表表1 1三、数字系统中常用进位制三、数字系统中常用进位制 1 1.1 .1 进位计数制进位计数制(11010101.110111010101.1101)B B = 3 3、八进制、八进制 “ “逢八进一逢八进一”。基数是。基数是8 8,具有,具有0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,八个代码。,八个代码。由于由于2 23 3=8=8,所以三位二制数可用一位,所以三位二制数可用一位八进制数表示。其长度压缩至二进制八进制数表示。其长度压缩至二进制长度的长度的1/31/
19、3,八进制与二进制关系如,八进制与二进制关系如表表1 1 所示。所示。( ( ) )8 8011 010 101 . 110 1003 2 5 . 6 4十六进制十六进制二进制二进制0 0000000001 1000100012 2001000103 3001100114 4010001005 5010101016 6011001107 7011101118 8100010009 910011001A A10101010B B10111011C C11001100D D11011101E E11101110F F11111111表表2 2 三、数字系统中常用进位制三、数字系统中常用进位制 1
20、1.1 .1 进位计数制进位计数制(11010101.110111010101.1101)B B =( )( )16164、十六进制:、十六进制: “逢十六进一逢十六进一”。具有。具有0 09 9、AF十六个代码。由于十六个代码。由于2 24 4=16=16,所,所以四位二进制数可用一位十六进制以四位二进制数可用一位十六进制数表示,其长度压缩至二进制长度数表示,其长度压缩至二进制长度的的1/41/4,十六进制与二进制关系如,十六进制与二进制关系如表表2 2所示。所示。(2(2AF.5.5E) )16161101 0101 . 1101 D 5 . D 十进制人们最熟悉;二进制是机器唯一认十进制
21、人们最熟悉;二进制是机器唯一认识的数制;八进制、十六进制便于书写和编程。识的数制;八进制、十六进制便于书写和编程。因此必须了解各种数制间如何转换。因此必须了解各种数制间如何转换。1 1、其它进制转换为十进制、其它进制转换为十进制2 2、十进制转换为其它进制、十进制转换为其它进制3 3、其它进制间的转换、其它进制间的转换四、数值转换四、数值转换 1 1.1 .1 进位计数制进位计数制例例1 1(10101.11)B =182+681+580+28-1=64+48+5+0.25 =(117.25)D=2161+10160+816-1 =32+10+0.5=(42.5)D例例2 2 (165.2)o
22、 1 1、其它进制转换为十进制、其它进制转换为十进制 采用的方法是:按权展开相加。采用的方法是:按权展开相加。=124+122+120+12-1+12-2 =16+4+1+0.5+0.25=(21.75)D例例3 3(2A.8)H 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制 整数转换整数转换 “ “连除取余连除取余”- ”- 除进位基数除进位基数R R , ,直至商数等于直至商数等于0 0或小于或小于基数为止。基数为止。 ( (427427) )D D =( (?) )B B =( (?) )o o =( (?) )H H 1 1.1 .1 进位计
23、数制进位计数制 转换方法:整数和小数转换方法不一样,分开转换。转换方法:整数和小数转换方法不一样,分开转换。如一个既有小数又有整数的十进制,分别将整数和小数转如一个既有小数又有整数的十进制,分别将整数和小数转换成对应的数,然后再相加。换成对应的数,然后再相加。例例: ( (427.625 427.625 ) )D D = ? 例:例: 十进制数十进制数 (157)(157)10 10 转换为二进制数转换为二进制数 已知:已知:( (M) )1010 =(157)(157)1010,求,求 :( (N) )2 2 =( (M) )1010 中的中的N N?因为,二进制数可以表示为:因为,二进制数
24、可以表示为: (N)2 = Kn-12n-1+Kn-22n-2+K121+K020所以:所以: (157)(157)10 10 = Kn-12n-1+Kn-22n-2+K121+K020只要求出其中的只要求出其中的 Kn-1、Kn-2 、K1、K0,即可。,即可。方法:连除取余数,倒序排列。方法:连除取余数,倒序排列。2 2、十进制转换为其它进制、十进制转换为其它进制 1 1.1 .1 进位计数制进位计数制 例例1 1: 十进制整数十进制整数 (157)(157)10 10 转换为二进制数转换为二进制数 (157)10 = Kn-1 2n-1+Kn-2 2n-2+K1 21+K0 20规律:等
25、式右边除规律:等式右边除 K0 外,都有外,都有2 2的因子。因此,用的因子。因此,用2 2除除( (157)10 , 1572=78+1。所得余数即为。所得余数即为 K0 =1 1。 (78)10 = Kn-1 2n-2+Kn-2 2n-3+K2 21+K1 再用再用2 2除除(78)(78)10 10 ,78782=39+02=39+0,余数即为,余数即为 K1 1=0 0。一直继续,直到商为一直继续,直到商为0 0。 (157) (157)10 10 =(10011101)(10011101)2 2改写为:改写为: (157)10 = Kn-1 2n-1+Kn-2 2n-2+K1 21+
26、K0 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制例例2 2:十进制小数:十进制小数 (0.913)(0.913)1010 转换为二进制数转换为二进制数 转换方法:不断用转换方法:不断用 2 2 乘十进制小数,将每次所得的乘十进制小数,将每次所得的整数整数0 0或或1 1,依次记为,依次记为K-1 、K-2 、 。若乘积的小数若乘积的小数部分最后能为部分最后能为0 0,则最后一次乘积的整数部分记作,则最后一次乘积的整数部分记作K-m ,则则: : 0.K-1 K
27、-2 K-m 即为十进制小数的二进制表达式。即乘即为十进制小数的二进制表达式。即乘2 2取整,正序排列。取整,正序排列。 因为十进制小数,并不都能用有限位的二进制小数精因为十进制小数,并不都能用有限位的二进制小数精确表示,则可根据精度要求,求得确表示,则可根据精度要求,求得m位作为它的近似表达位作为它的近似表达式。式。例例2 2: 十进制小数十进制小数 (0.913)(0.913)10 10 转换为二进制数转换为二进制数 (0.826)(0.826)10 10 = K-2 2-1+K-3 2-2+K-m 2-m+1等式两边再乘以等式两边再乘以2 2, 得:得:K-2 = 1= 1。(1.652
28、)(1.652)10 10 = K-2 +K-3 2-1+K-m 2-m+2转换结果:转换结果:(0.913)(0.913)10 10 = (0.1110) (0.1110)2 2 (0.913) (0.913)10 10 = K-1 2-1+K-2 2-2+K-m 2-m等式两边乘以等式两边乘以2:2: 改写为:改写为:(1.0+0.826)(1.0+0.826)10 10 = K-1 +K-2 2-1+K-m 2-m+1(1.826)(1.826)10 10 = K-1 +K-2 2-1+K-m 2-m+1 所以:所以:K-1 = 1 1。 1 1.1 .1 进位计数制进位计数制2 2、十
29、进制转换为其它进制、十进制转换为其它进制例例3 3:十进制小数:十进制小数 (0.43)(0.43)10 10 转换为二进制数(保留转换为二进制数(保留5 5位小数位小数) 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制0.43 0.43 * * 2 2 = 0.86 0.86 小数小数 基数基数 0 0乘积乘积 整数部分整数部分0.86 0.86 * * 2 2 = 1.72 1.72 1 10.72 0.72 * * 2 2 = 1.44 1.44 1 10.44 0.44 * * 2 2 = 0.88 0.88 0 00.88 0.88 * *
30、2 2 = 1.76 1.76 1 1转换结果:转换结果:(0.43)(0.43)10 10 =(0.01101)(0.01101)2 2 对小数进行转换的过程中,转换后的二进制数已达到对小数进行转换的过程中,转换后的二进制数已达到要求位数,而最后一次的乘积的小数部分不为要求位数,而最后一次的乘积的小数部分不为0 0,会使转,会使转换结果存在误差,其误差值小于求得的最低一位的位权。换结果存在误差,其误差值小于求得的最低一位的位权。 例:(例:(427.625 427.625 )D = ? 整数转换整数转换 LSBMSB (427)(427)D = (110101011)(110101011)B
31、 = (653)(653)o = (1(1AB) )H26262 26 62 21 12 20 04274272 21061062 253532 213132 23 32 21 11 11 10 00 01 11 121321353533 38 86 68 8 4274275 52626B BA16161 14274271616 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制 ( (0.625)0.625) D = (0.101) (0.101) B = (0.5) (0.5) O = (0. (0.A) )H 0.625 2 1.250 2 0.50
32、0 2 1.000 0.625 8 5.000 0.625 16 3.750 6.25 10.000 (0.6250.625)D = (? )B = (? )o = (? )H “ “连乘取整连乘取整”-”-乘进位基数,直至小数为乘进位基数,直至小数为0 0或满足精度为止。或满足精度为止。 纯小数转换纯小数转换 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制 (427.625) (427.625) D = (110101011.101)(110101011.101) B = (653.5)(653.5)O = (1 (1AB.AAB.A) ) H (4
33、27) (427) D = (110101011) (110101011) B =(653)(653) O =(1AB)(1AB) H ( (0.625)0.625) D =(0.101)(0.101) B =(0.5)(0.5) O =(0.A)(0.A) H 1 1.1 .1 进位计数制进位计数制2 2、十进制转换为其它进制、十进制转换为其它进制 整数与小数转换完成后,对应的数相加整数与小数转换完成后,对应的数相加是指二进制、八进制、十六进制间的转换。是指二进制、八进制、十六进制间的转换。 已知八进制,十六进制与二进制的关系;故八进制与已知八进制,十六进制与二进制的关系;故八进制与十六进制
34、间的转换常通过二进制实现。十六进制间的转换常通过二进制实现。按四位一组按四位一组二进制二进制 八进制八进制十六进制十六进制十六进制十六进制二进制二进制按三位一组按三位一组八进制八进制 1 1.1 .1 进位计数制进位计数制3 3、其它进制间的转换、其它进制间的转换 (347.5347.5)O = (11100111.10111100111.101) B = (E7.AE7.A) H 例例1 1 (347.5347.5) O =( ?)?) H 例例2 2 ( A97.5A97.5 ) H = ( ?)?)O ( A97.5A97.5 ) H = (101010010111.0101101010
35、010111.0101) B = (5227.245227.24) O 1 1.1 .1 进位计数制进位计数制3 3、其它进制间的转换、其它进制间的转换1 1.2 .2 编码编码一、基本概念一、基本概念1 1、编码:、编码: 二进制数不仅可以代表数值的大小、参与运算,还可以二进制数不仅可以代表数值的大小、参与运算,还可以代表一定的信息。代表了信息的代表一定的信息。代表了信息的“0 0”、“1 1”称为二进制码称为二进制码元,将若干个二进制码元顺序排列在一起,称为二元码序列,元,将若干个二进制码元顺序排列在一起,称为二元码序列,建立二元码序列和信息之间的一一对应关系的过程称为编码。建立二元码序列
36、和信息之间的一一对应关系的过程称为编码。2 2、代码:、代码: 经过编码后,代表一个确定信息的二元码序列称为代码。经过编码后,代表一个确定信息的二元码序列称为代码。一位二进制代码有一位二进制代码有0 0,1 1二个状态,可表示二种信息;二位二二个状态,可表示二种信息;二位二进制代码有进制代码有2 22 2四种状态,四种状态,0000,0101,1010,11 11 可表示为四种信可表示为四种信息;息;n 位二进制代码有位二进制代码有2 2n 种状态,可表示种状态,可表示2 2n种信息。种信息。 按照二进制代码各位权值大小,顺序增加来表示数值的按照二进制代码各位权值大小,顺序增加来表示数值的大小
37、所生成的代码,称为自然代码。大小所生成的代码,称为自然代码。C C语言中:语言中:0 09 9:0011 00000011 00000011 10010011 1001(30H30H39H39H)字母:字母:A 0100 0001A 0100 0001,(,(6565) a 0110 0001 a 0110 0001,(,(9797)main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);a,97a,97二、十进制数的二进制编码二、十进制数的二进制编码1 1、BCD码:十进制人们最熟悉,而机器只认识二进制代码:
38、十进制人们最熟悉,而机器只认识二进制代码,用二进制代码表示十进制数(码,用二进制代码表示十进制数(Binary Coded Decimal)简称简称BCD码码。3 3、种类:、种类:无权码,每位无固定的数值。无权码,每位无固定的数值。有权码,即每位有固定的权值。有权码,即每位有固定的权值。 如:如:84218421 BCD ,54215421 BCD ,24212421 BCD等;等; 如:如:余余3 3 BCD码、格雷码、格雷BCD码等。码等。1 1.2 .2 编码编码2 2、特点:即有二进制的形式,又具有十进制数的特点,、特点:即有二进制的形式,又具有十进制数的特点,便于传递、处理。便于传
39、递、处理。1010个数码用个数码用4 4位二进制数编码。位二进制数编码。数码管原理图:二、十进制数的二进制编码二、十进制数的二进制编码1 1.2 .2 编码编码二、十进制数的二进制编码二、十进制数的二进制编码1 1.2 .2 编码编码BCDBCD码与数码管显示字符对应关系(共阴级)码与数码管显示字符对应关系(共阴级)表表1 1 几种常用的几种常用的BCD码码十进制数十进制数 8421BCD 5421BCD 2421BCD 余余3BCD 格雷格雷BCD0000000000000001100001000100010001010000012001000100010010100113001100110
40、01101100010401000100010001110110501011000101110000111601101001110010010101701111010110110100100810001011111010111100910011100111111001000二、十进制数的二进制编码二、十进制数的二进制编码1 1.2 .2 编码编码4 4、常见的、常见的BCD码:码:16个状态只用了个状态只用了1010个,余下的六个状态就是非法码,禁止出现。个,余下的六个状态就是非法码,禁止出现。8421BCD码的非法码是码的非法码是:1010,1011,1100,1101,1110,1111,
41、5421BCD码的非法码是码的非法码是:0101,0110,0111,1101,1110,1111,2421BCD码的非法码是码的非法码是:0101,0110,0111,1000,1001,1010,余余 3 BCD码的非法码是码的非法码是:0000,0001,0010,1101,1110,1111,格雷格雷BCD码的非法码是码的非法码是: 1001,1010,1011,1101,1110,1111,二、十进制数的二进制编码二、十进制数的二进制编码1 1.2 .2 编码编码4 4、常见的、常见的BCD码(非法码):码(非法码):例(例(258.3258.3)D = (001001011000.
42、0011001001011000.0011)84218421BCDBCD = (001010001011.0011001010001011.0011)54215421BCDBCD = (001010111110.0011001010111110.0011)24212421BCDBCD = (010110001011.0110010110001011.0110)余余3 3BCDBCD = (001101111100.0010001101111100.0010)格雷格雷BCDBCD 一组一组BDC码可表示一位十进制数,码可表示一位十进制数, n 位十进制,就位十进制,就应用应用 n 组组BDC码表
43、示。如码表示。如258.3258.3如何表示为如何表示为BCD码?码?二、十进制数的二进制编码二、十进制数的二进制编码1 1.2 .2 编码编码5 5、十进制数的、十进制数的BDC码表示:码表示: 代码在产生和传输的过程中,难免产生错误,为减少代码在产生和传输的过程中,难免产生错误,为减少错误的产生,或者能检测出错误的发生,故广泛采用了可错误的产生,或者能检测出错误的发生,故广泛采用了可靠性编码技术。靠性编码技术。 格雷(格雷(Gray)码码 码表中的代码,相邻两组代码中存在多位变化的状况。码表中的代码,相邻两组代码中存在多位变化的状况。而每位变化速度不同,将会产生错误的中间状态,如:而每位变
44、化速度不同,将会产生错误的中间状态,如:84218421BCD码码, ,当当 01111000 01111000 变化时,假设高位先变,则变化时,假设高位先变,则过程如下过程如下:三、可靠性编码三、可靠性编码1 1.2 .2 编码编码 在某些控制系统中,绝对不允许出现此种现象,为在某些控制系统中,绝对不允许出现此种现象,为此出现格雷码。格雷码的特征是,每相邻两组代码仅有此出现格雷码。格雷码的特征是,每相邻两组代码仅有一位发生变化一位发生变化即相邻两组代码的码距为即相邻两组代码的码距为 1 1。三、可靠性三、可靠性编码编码1 1.2 .2 编码编码 当当 01111000 01111000 进行
45、转换时,各位转换速度不同,如进行转换时,各位转换速度不同,如高位先转换:高位先转换: 格雷(格雷(Gray)码(编码位数)码(编码位数) 10110100三位格雷码三位格雷码二位格雷码二位格雷码100101111110010011001000三、可靠性三、可靠性编码编码1 1.2 .2 编码编码 四位格雷码四位格雷码0000000100110010011001110101010011001101111111101010101110011000 相邻两组代码仅有一位变化,故不会产相邻两组代码仅有一位变化,故不会产生错误的中间状态生错误的中间状态 奇偶校验码奇偶校验码 信号代码传递过程中,由于干扰
46、等原因产生错误如信号代码传递过程中,由于干扰等原因产生错误如: : 如不能发现错误,其结果显然是错误的,这样设备如不能发现错误,其结果显然是错误的,这样设备的可靠性将很低。为此出现多种编码方式。的可靠性将很低。为此出现多种编码方式。 最常用的是奇偶校验码。即信息位加上校验位,使最常用的是奇偶校验码。即信息位加上校验位,使其中其中“1 1”的个数为奇数称奇校验码;如为偶数个的个数为奇数称奇校验码;如为偶数个“1 1”称偶校验码。接收代码时检测称偶校验码。接收代码时检测“1 1”的个数,如与发射的的个数,如与发射的代码不符即为错码。代码不符即为错码。84218421BCD奇偶校验码如下表:奇偶校验
47、码如下表:三、可靠性三、可靠性编码编码1 1.2 .2 编码编码 奇偶校验码奇偶校验码 信息码信息码奇校位奇校位偶校位偶校位0000010100010120010013001110401000150101106011010701110181000019100110三、可靠性三、可靠性编码编码1 1.2 .2 编码编码 奇偶校验的奇偶校验的84218421BCD码表:码表:四、字符编码四、字符编码1 1.2 .2 编码编码 数字系统中,需要把各种符号、文字、图像等,用二数字系统中,需要把各种符号、文字、图像等,用二进制表示,这样的二进制数称为字符编码。进制表示,这样的二进制数称为字符编码。 常见
48、字符常见字符128128种,数字字符、英文字母、运算符号等。种,数字字符、英文字母、运算符号等。有多种编码方法。有多种编码方法。 、7 7位位ASCII编码:编码: 英文字母有英文字母有A-Z及由及由a-z顺序编码顺序编码; ;十进制数采用高十进制数采用高3 3位相同位相同= 011011,低,低4 4位按二进制顺序编码。位按二进制顺序编码。Hello World!钓鱼岛是中国的固有领土!钓鱼岛是中国的固有领土!ASCII码表十进制十六进制符号十进制十六进制符号十进制十六进制符号十进制十六进制符号00H(NULL)3220H空格符6440H9660H11H3321H!6541HA9761Ha2
49、2H3422H6642HB9862Hb33H3523H#6743HC9963Hc44H3624H$6844HD10064Hd55H3725H%6945HE10165He66H3826H&7046HF10266Hf77HBEEP3927H7147HG10367Hg88H4028H(7248HH10468Hh99Ht4129H)7349HI10569Hi10aHn422aH*744aHJ1066aHj11bHv432bH+754bHK1076bHk12cHf442cH,764cHL1086cHl13dHr452dH-774dHM1096dHm14eH462eH.784eHN1106eHn1
50、5fH472fH/794fHO1116fHo1610H4830H08050HP11270Hp1711H4931H18151HQ11371Hq1812H5032H28252HR11472Hr1913H5133H38353HS11573Hs2014H5234H48454HT11674Ht2115H5335H58555HU11775Hu2216H5436H68656HV11876Hv2317H5537H78757HW11977Hw2418H5638H88858HX12078Hx2519H5739H98959HY12179Hy261aH(Ctrl-Z)583aH:905aHZ1227aHz271bHE
51、SC593bH;915bH1237bH281cH603cH945eH1267eH311fH633fH?955fH_1277fH四、字符编码四、字符编码1 1.2 .2 编码编码、8 8位位ASCIIASCII编码:编码: 用高两位把字符分用高两位把字符分4 4类,第类,第5 5位与最高位相同,其余位与最高位相同,其余5 5位与位与7 7位位ASCIIASCII编码相同编码相同 00 00:控制字符:控制字符 01 01:数字及通用符号:数字及通用符号 10 10:大写英文字母:大写英文字母 11 11:小写英文字母:小写英文字母 、EBCDICEBCDIC扩展二扩展二- -十进制编码:十进制编
52、码: 8 8位码都用来表示字符位码都用来表示字符 M MR RN NE E 25251010)25250 0(5165161010)516000516000(2 210102 23 310101 1 - -. .N NN N对于二进制数有:对于二进制数有:M MN NE E 2 2 数字系统中,带小数点的数有两种表示方法:数字系统中,带小数点的数有两种表示方法: 定点表示定点表示 浮点表示浮点表示五、带小数点的数表示五、带小数点的数表示1 1.2 .2 编码编码1、数的表示:任何数制的数、数的表示:任何数制的数N,均可以表示为:,均可以表示为: 其中:其中:R为进制的基数;为进制的基数;E为阶
53、码,取值为整数;为阶码,取值为整数;M为为尾数,取值为整数或小数。例如:尾数,取值为整数或小数。例如:2、定点表示法:、定点表示法: 一个数中,小数点的位置在数中是固定不变的。这个固一个数中,小数点的位置在数中是固定不变的。这个固定的位置是事先约定好的,不必用符号表示。在定点表示定的位置是事先约定好的,不必用符号表示。在定点表示中,阶码中,阶码E为为0。由两种定点表示法。由两种定点表示法。例如:例如: N= +1011011, 表示为:表示为:0,1011011 N= - 0.1101011, 表示为:表示为:1.1101011五、带小数点的数表示五、带小数点的数表示1 1.2 .2 编码编码
54、 整数定点:当整数定点:当 E=0E=0,尾数,尾数M M为纯整数时,则认为小数点为纯整数时,则认为小数点 在尾数在尾数M M的最低位右边,为整数定点。的最低位右边,为整数定点。 小数定点:当小数定点:当 E=0E=0,尾数,尾数M M为纯小数时,则认为小数点为纯小数时,则认为小数点 在尾数在尾数M M的最高位的左边,为小数定点。的最高位的左边,为小数定点。 定点数表示法,数定点数表示法,数N N的范围是有限的。的范围是有限的。3、浮点表示法:、浮点表示法: 一个数中,小数点的位置在数中不是固定不变的,而是一个数中,小数点的位置在数中不是固定不变的,而是可以变化的,这种表示方法为浮点表示法。阶
55、码可以变化的,这种表示方法为浮点表示法。阶码E和尾数和尾数M各自可分别采用原码、反码、补码的形式。各自可分别采用原码、反码、补码的形式。浮浮点数的表示格式如下点数的表示格式如下:阶阶符符EE E EMM M M阶阶码码数数符符数数码码五、带小数点的数表示五、带小数点的数表示1 1.2 .2 编码编码M MR RN NE E 例如:例如: ,如何表示?,如何表示?) )9 9( (2 24 4 N N二进制表示为:二进制表示为:) )10011001( (1010100100 N N 尾数尾数 M M 表示了数表示了数 N N 的全部有效数字,阶码的全部有效数字,阶码 E E 指明了指明了小数点
56、的位置。小数点向左移一位,相当于尾数的数码向小数点的位置。小数点向左移一位,相当于尾数的数码向右移一位,而阶码加右移一位,而阶码加 1 1。五、带小数点的数表示五、带小数点的数表示1 1.2 .2 编码编码 浮点数的加法运算浮点数的加法运算 阶码相同:尾数相加,阶码不变阶码相同:尾数相加,阶码不变 阶码不同:先对阶,再求和阶码不同:先对阶,再求和解:先对阶,小阶向大阶看齐:解:先对阶,小阶向大阶看齐:1 11 10 00 0. .0 02 21 10 00 01 1. .0 02 20 01 11 11 1 b ba a0 00 01 11 1. .0 02 21 10 00 01 1. .0
57、 02 21 11 11 11 1 b ba a和和:1 11 10 00 0. .0 02 21 11 1 浮点数的乘、除运算:尾数相乘、除,阶码相加、减浮点数的乘、除运算:尾数相乘、除,阶码相加、减五、带小数点的数表示五、带小数点的数表示1 1.2 .2 编码编码4 4、浮点数的运算:加法、乘除法运算、浮点数的运算:加法、乘除法运算例如:例如:带符号的数的表示方法:带符号的数的表示方法: 通常的算术运算:通常的算术运算:“+ +” 表示正数,表示正数,“- -” 表示负数表示负数六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码 数字系统:把数值最高位的前一位作
58、为符号位,用数字系统:把数值最高位的前一位作为符号位,用“0 0” 表示表示“+ +”,用,用“1 1”表示表示“- -” 数值部分连同符号位一起作为一个数,称为机器数数值部分连同符号位一起作为一个数,称为机器数 原来的数值形式,称为机器数的真值原来的数值形式,称为机器数的真值 机器数的表示:原码、补码、反码机器数的表示:原码、补码、反码 最高位为符号位,最高位为符号位,0 0、1 1表示正、负;数值部分在书写表示正、负;数值部分在书写 上用上用“,”“,”(整数)或(整数)或“.”“.”(小数)将数值部分和符(小数)将数值部分和符 号位隔开号位隔开 对于正数,符号位为对于正数,符号位为 0
59、0,原码,原码 = = 补码补码 = = 反码反码 对于负数,符号位为对于负数,符号位为 1 1,其数值部分为:,其数值部分为: 原码:符号位原码:符号位+ +真值不变真值不变 补码:原码除符号位外,真值每位取反末位加补码:原码除符号位外,真值每位取反末位加 1 1 反码:原码除符号位外,真值每位取反反码:原码除符号位外,真值每位取反六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码原码、补码、反码的构成:原码、补码、反码的构成:六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码x原原 = 0,x 2n x 02n x 0 x 2nx补补
60、 = 0,x 2n x 02n+1 + x 0 x 2n (mod 2n+1)x反反 = 0,x 2n x 0( 2n+1 1) + x 0 x 2n(mod 2n+1 1)整数的原码、补码、反码的定义公式:整数的原码、补码、反码的定义公式:x补补 = x 1 x 02 + x 0 x 1(mod 2) x 1 x 0 x原原 = 1 x 0 x 1x反反 = x 1 x 0( 2 2-n) + x 0 x 1(mod 2 2-n)六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码小数的原码、补码、反码的定义公式:小数的原码、补码、反码的定义公式:(1) 定义定义整
61、数:整数:x 为真值,为真值,n 为整数的位数为整数的位数如:如: x = +1110 x原原 = 0 , 1110 x原原 = 24 + 1110 = 1 , 1110 x = 1110 x原原 = 0,x 2n x 02n x 0 x 2n 用逗号将符号用逗号将符号位和数值位隔开位和数值位隔开1. 原码表示法:符号原码表示法:符号-数值表示法数值表示法六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码x 为真值为真值如:如:x = + 0.1101x原原 = 0 . 1101 x = 0.1101x原原 = 1 ( 0.1101) = 1 . 1101 x 1
62、x 0 x原原 = 1 x 0 x 1x = 0.1000000 x原原 = 1 ( 0.1000000) = 1 . 1000000 x = + 0.1000000 x原原 = 0 . 1000000 用小数点将符号用小数点将符号位和数值位隔开位和数值位隔开 用小数点将符号用小数点将符号位和数值位隔开位和数值位隔开 (1) 小数定义:小数定义:六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码例例 1: 已知已知 x原原 = 1.0011 求求 x解解:例例 2: 已知已知 x原原 = 1,1100 求求 x解解:x = 1 x原原 = 1 1.0011 = 0.
63、0011x = 24 x原原 = 10000 1,1100 = 1100 0.00111100由定义得由定义得由定义得由定义得六六、带符号的二进制数的编码(例题)、带符号的二进制数的编码(例题)1 1.2 .2 编码编码例例 4: 求求 x = 0 的原码的原码解解: 假设假设x为小数为小数 x = +0.0000例例 3:已知:已知 x原原 = 0.1101 求求 x解:解: x = + 0.1101同理,对于整数:同理,对于整数:+ 0原原 = 0,0000+0.0000原原 = 0.0000 x = 0.0000 0.0000原原 = 1.0000 0原原 = 1,0000根据根据 定义
64、定义 x原原 = 0.1101六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码+ 0+ 0原原 0 0原原 原码的特点:原码的特点:简单、直观简单、直观缺点:用原码做加法时,会出现如下问题:缺点:用原码做加法时,会出现如下问题:能否只做加法能否只做加法 ? 加法加法 正正 正正加加加法加法 正正 负负加法加法 负负 正正加法加法 负负 负负减减减减加加 要求要求 数数1 数数2 实际操作实际操作 结果符号结果符号正正可正可负可正可负可正可负可正可负负负六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码 找到一个与负数等价的正数;用来代替
65、这个负数,找到一个与负数等价的正数;用来代替这个负数,就就可使可使“减减”法变成法变成“加加”法运算。法运算。 (1) 补的概念补的概念 时钟时钟逆时针:逆时针:- 363顺时针:顺时针:+ 9 615- 1232. 补码表示法补码表示法可见可见 3 可用可用 + 9 代替代替记作记作 3 + 9 (mod 12)同理同理 4 + 8 (mod 12) 5 + 7 (mod 12)时钟以时钟以1212为模为模,减法,减法 加法加法称称 + 9 是是 3 以以 12 为模的补数为模的补数六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码结论:结论: 一个负数加上一个负
66、数加上 “模模” 即得该负数的补数即得该负数的补数 两个互为补数的数两个互为补数的数 , , 它们绝对值之和即为模数它们绝对值之和即为模数 计数器(模计数器(模 16) 101110110000+ 0101 1011100001011 0000 ?可见:可见: -1011 可用可用 + 0101 代替代替记作:记作: -1011 + 0101 (mod 24)同理:同理: - 011 + 101 (mod 23)- 0.1001 + 1.0111 (mod 2)自然去掉自然去掉六六、带符号的二进制数的编码、带符号的二进制数的编码1 1.2 .2 编码编码 正数的补数即为其本身正数的补数即为其本身 (3) 补码定义:符号补码定义:符号0、1表示正、负,负数数值表示正、负,负数数值=原码取反原码取反+1整数:整数:x 为真值,为真值,n 为整数的位数为整数的位数x补补 = 0,x 2n x 02n+1 + x 0 x 2n (mod 2n+1)如:如:x = +1010 x补补 = 27+1 +( 1011000 ) 1000000001011000 x补补 = 0,1010 x = 10110001,0