单片机原理与应用_01计算机基础_第1页
单片机原理与应用_01计算机基础_第2页
单片机原理与应用_01计算机基础_第3页
单片机原理与应用_01计算机基础_第4页
单片机原理与应用_01计算机基础_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1 1章章 计算机基础计算机基础 1.1 1.1 概概 述述 1.2 1.2 计算机中的数制、码制及运算计算机中的数制、码制及运算 1.3 1.3 逻辑代数与数字电路逻辑代数与数字电路 1.4 1.4 计算机的基本组成与工作过程计算机的基本组成与工作过程 1.1 1.1 概概 述述 自自19711971年年1111月,美国月,美国IntelIntel公司推出公司推出4 4位微处理器位微处理器Intel4004Intel4004以后,微处以后,微处理器迅速发展,按其集程度、体系结构、字长及综合性能,大致经历了四个理器迅速发展,按其集程度、体系结构、字长及综合性能,大致经历了四个发展时期,也称

2、为四代。现在的发展时期,也称为四代。现在的PentiumPentium微处理器堪称为微处理器堪称为IntelIntel公司的第五代公司的第五代微处理器。微处理器。 在微处理器的发展过程中,人们试图在其芯片中增加存储器、在微处理器的发展过程中,人们试图在其芯片中增加存储器、I/OI/O接口接口电路、定时器电路、定时器/ /计数器、计数器、UARTUART,甚至,甚至A/DA/D、D/AD/A转换器等,以提高其功能,并赋转换器等,以提高其功能,并赋予专门的用途,比如数据采集、通信、信号传送与控制等。因此也就产生了予专门的用途,比如数据采集、通信、信号传送与控制等。因此也就产生了各种具有不同功能的微

3、处理器,称之为微控制器各种具有不同功能的微处理器,称之为微控制器(Microcontroller)(Microcontroller),亦称,亦称为单片机为单片机(Single chip computer)(Single chip computer)。自。自19761976年年IntelIntel公司推出公司推出MCS-48MCS-48系列单系列单片机以后,相继涌现出不少的生产厂家、公司及系列产品。例如片机以后,相继涌现出不少的生产厂家、公司及系列产品。例如IntelIntel公司的公司的MCS-51MCS-51系列,系列,MotorolaMotorola公司的公司的MC6801MC6801、6

4、8056805,ZilogZilog公司的公司的Z8Z8,RockwellRockwell公公司的司的6500/16500/1系列等。系列等。 由于单片机结构紧凑,体积小,功能强,大量用于智能仪器仪表、由于单片机结构紧凑,体积小,功能强,大量用于智能仪器仪表、前端控制设备、家用电器之中,因此也称为前端控制设备、家用电器之中,因此也称为“嵌入式嵌入式”芯片。自上世芯片。自上世纪纪9090年代以后,随着自动控制、网络通信、家用电器以及多媒体技术年代以后,随着自动控制、网络通信、家用电器以及多媒体技术的发展,尤其是手机的大量使用,猛烈地撞击着单片机市场,使的发展,尤其是手机的大量使用,猛烈地撞击着单

5、片机市场,使“嵌嵌入式入式”芯片作为一种新的技术迅速发展。可归结为以下几个方面:芯片作为一种新的技术迅速发展。可归结为以下几个方面: (1) (1) 增加字长,提高数据精度和处理的速度。早期字长是增加字长,提高数据精度和处理的速度。早期字长是8 8位,位,以后发展为以后发展为1616位、位、2424位和位和3232位。但在多数应用场合,位。但在多数应用场合,8 8位数据可以满位数据可以满足需要。因此,足需要。因此,8 8位单片机与位单片机与16/24/3216/24/32位单片机一样,竟相发展。位单片机一样,竟相发展。 (2) 改进制作工艺,提高单片机的整体性能,由改进制作工艺,提高单片机的整

6、体性能,由MOS型发展成型发展成CMOS、HCMOS型,提高了芯片的集程度和器件型,提高了芯片的集程度和器件的速度,降低了电压和功耗;内部采用大容量的速度,降低了电压和功耗;内部采用大容量FLASH快闪快闪存储器,实现在系统中烧录程序存储器,实现在系统中烧录程序(ISP)和在应用中烧录程序和在应用中烧录程序(IAP)等技术。比如,等技术。比如,Philips的的P89C51RC2/RD2具有具有32/64KB的的FLASH快闪存储器,集成有引导和擦除快闪存储器,集成有引导和擦除/烧录程烧录程序,支持序,支持ISP和和IAP技术;外部时钟频率提高到技术;外部时钟频率提高到33 MHz40MHz,

7、运算速度达到,运算速度达到50 MIPS100MIPS。 (3) (3)由复杂指令集由复杂指令集CISC(Complex instruction set CISC(Complex instruction set computer )computer ) 技术转向简单指令集技术转向简单指令集R I S C ( R e d u c e d R I S C ( R e d u c e d instruction set computer)instruction set computer)技术。早期的技术。早期的MCS-51MCS-51单片机单片机采用的是采用的是CISCCISC技术,以后采用技术,以

8、后采用RISCRISC技术,简化了体系结构,技术,简化了体系结构,提高提高CPUCPU的速度,比如的速度,比如MicrochipMicrochip的的PIC12/16/17/18FxxxPIC12/16/17/18Fxxx微微控制器等。控制器等。 (4) 采用多功能模块集成技术,使一块采用多功能模块集成技术,使一块“嵌入式嵌入式”芯片具芯片具有多种功能,除了有多种功能,除了RAM/ROM、寄存器文件、定时器、寄存器文件、定时器/计数器、计数器、并并/串行接口电路、串行接口电路、V/F变换器、变换器、A/D与与D/A电路之外,已有许多电路之外,已有许多单片机采用双单片机采用双CPU或者多或者多C

9、PU结构,增加锁相环路、结构,增加锁相环路、USB、CAN、ISSC、I2C等总线接口,提供支持等总线接口,提供支持TCP/IP协议的通信接协议的通信接口。比如美国口。比如美国Echelon公司的公司的Neuron3150,内置,内置3个个CPU,一个,一个用于介质访问,一个用于数据处理器,另一个作为网络处理器用于介质访问,一个用于数据处理器,另一个作为网络处理器。又如。又如Philips的的P89C66x,提供,提供I2C总线传送方式。总线传送方式。 (5) (5) 将微处理器与将微处理器与DSP(Digital signal processor)DSP(Digital signal pro

10、cessor)技术结合,技术结合,适时解决网络与多媒体技术所需的高速实时处理能力。比如我国台适时解决网络与多媒体技术所需的高速实时处理能力。比如我国台湾凌阳科技公司推出的湾凌阳科技公司推出的nspnsp系列单片机,其系列单片机,其1616位机中增添了位机中增添了DSPDSP功能,具有语音编码与解码器,内置在线仿真电路功能,具有语音编码与解码器,内置在线仿真电路ICE(In circuit ICE(In circuit emulator)emulator)。 (6) (6) 在内部融入高级语言的编译程序,支持应用程序接口在内部融入高级语言的编译程序,支持应用程序接口API API 的使用,支持的

11、使用,支持C C及硬件描述语言及硬件描述语言VHDLVHDL等高级语言的使用;内置在线等高级语言的使用;内置在线仿真电路仿真电路ICE(In circuit emulator)ICE(In circuit emulator),支持在线编程写入,即,支持在线编程写入,即ISPISP和和IAPIAP技术等。技术等。 (7) 追求低电压、宽电压、低功耗和少引脚。改进制作追求低电压、宽电压、低功耗和少引脚。改进制作工艺,降低内部电压和功耗,提供宽电压使用方式,以支工艺,降低内部电压和功耗,提供宽电压使用方式,以支持不同场合的需要。比如瑞典持不同场合的需要。比如瑞典Xemic公司的公司的XE8301,使

12、用,使用电压为电压为1.2V5.5V,当运算速度为,当运算速度为1MIPS时电流为时电流为200A,在待机状态下仅为在待机状态下仅为1A;DSP56852外部仅有外部仅有81个引脚。个引脚。 如今,如今,“嵌入式嵌入式”单片机已广泛用于数值计算与单片机已广泛用于数值计算与处理、自动化控制、智能仪器仪表、空间探测、导弹制处理、自动化控制、智能仪器仪表、空间探测、导弹制导、机器人、网络通信、视频电话、家用电器以及各种导、机器人、网络通信、视频电话、家用电器以及各种多媒体技术领域。以多媒体技术领域。以DSP单片机为内核的产品已经难以单片机为内核的产品已经难以尽数,比如尽数,比如Web可视电话、可视电

13、话、Web电视游戏机、数字摄象电视游戏机、数字摄象机、数码相机、移动电话、手持挂网影碟机、机、数码相机、移动电话、手持挂网影碟机、DVD以及以及电视会议设备等。电视会议设备等。 1.2 1.2 计算机中的数制、码制及运算计算机中的数制、码制及运算 1.2.1 1.2.1 进位计数制进位计数制1.2.2 1.2.2 二进制数的表示与基本运算二进制数的表示与基本运算1.2.3 1.2.3 八进制与十六进制数的表示八进制与十六进制数的表示1.2.4 1.2.4 不同进位计数制之间的转换不同进位计数制之间的转换1.2.5 1.2.5 十进制数与字符的二进制数表示法十进制数与字符的二进制数表示法1.2.

14、6 1.2.6 原码、补码、反码及运算法则原码、补码、反码及运算法则1.2.7 1.2.7 定点数与浮点数定点数与浮点数1.2.1 1.2.1 进位计数制进位计数制 早在远古时期,人们就已经有了数的概念,并且随着生产的早在远古时期,人们就已经有了数的概念,并且随着生产的发展创造出许多计数的方法。其中应用最广泛、最科学的方法就发展创造出许多计数的方法。其中应用最广泛、最科学的方法就是是“进位计数制进位计数制”。 所谓进位计数制是取有序数符中的任意个,按位置排列,其所谓进位计数制是取有序数符中的任意个,按位置排列,其相邻两位之比是一个固定的常数,这个常数称为基数。取不同的相邻两位之比是一个固定的常

15、数,这个常数称为基数。取不同的基数,则可得到不同的进位计数制。若以基数,则可得到不同的进位计数制。若以R R表示基数,则为表示基数,则为R R进制进制的数,在进位时,逢的数,在进位时,逢R R进一。进一。 例如人们所熟悉的十进制数例如人们所熟悉的十进制数2002,就是取有序数符,就是取有序数符0,1,2,9中的中的2,0,0,2,按位置排列。其中两位是,按位置排列。其中两位是2,但由,但由于所处的位置不同,所表示数值的大小也就不同。一个表示于所处的位置不同,所表示数值的大小也就不同。一个表示2,另一个表示另一个表示2000。这就是人们常说的。这就是人们常说的“个,十,百,千个,十,百,千”,在

16、数,在数学上称为学上称为“权权”。这样的数通常称为。这样的数通常称为“加权数加权数”或或“权码权码”。显。显然,基数不同,各位的权也就不同。对于然,基数不同,各位的权也就不同。对于R进制的数,各位的权进制的数,各位的权分别为:分别为: R3,R2,R1,R0,R-1,R-2 在计算机中,常用的进位计数制有二进制、八进制、十进制在计算机中,常用的进位计数制有二进制、八进制、十进制和十六进制。也就是说,和十六进制。也就是说,R分别为分别为2,8,10,和,和16。 对于十进制数,其基数为十,逢十进一,各位的权分别是:对于十进制数,其基数为十,逢十进一,各位的权分别是: 10 103 3,10,10

17、2 2,10,101 1,10,100 0,10,10-1-1,10,10-2-2 例如:例如:256.7256.7,各位的权分别为,各位的权分别为10102 2,10101 1,10100 0和和1010-1-1。按权展开,形式。按权展开,形式如下:如下:256.7=2256.7=2(10)(10)2 2+5+5(10)(10)1 1+6+6(10)(10)0 0+7+7(10)(10)-1-1一般来说一般来说, ,一个任意的十位制数可以表示为一个任意的十位制数可以表示为: :(N)(N)1010=(D=(Dn-1n-1D Dn-2n-2D D1 1D D0 0.D.D-1-1D D-m-m

18、) )1010 在书写时,其后用字母在书写时,其后用字母D(Decimal)D(Decimal)说明,亦称为后缀,比如说明,亦称为后缀,比如23.52D23.52D。由于十进制数是人们最常用的计数方式,因此后缀由于十进制数是人们最常用的计数方式,因此后缀D D可以缺省。可以缺省。 Di(10)in-1i=-m= =Dn-1(10)n-1+Dn-2(10)n-2+D1(10)1+D0(10)0+D-1(10)-1+D-2(10)-2+D-m(10)-m1.2.2 1.2.2 二进制数的表示与基本运算二进制数的表示与基本运算1. 1. 二进制数的表示二进制数的表示二进制是基数为二进制是基数为2 2

19、的进位计数制,它所使用的数符为的进位计数制,它所使用的数符为0 0,1 1和和小数点小数点“. .”,各位的权如,各位的权如表表1.11.1所示。所示。例如二进制数例如二进制数1111.111111.11各位的权分别为:各位的权分别为:2 23 3,2,22 2,2,21 1,2,20 0,2,2-1-1,2,2-2-2可表示为:可表示为: (N)(N)2 2=(B=(Bn-1n-1B Bn-2n-2B B1 1B B0 0.B.B-1-1B B-2-2B B-m-m) )2 2 Bi(10)in-1i=-m= =Bn-1(10)n-1+Bn-2(10)n-2+B1(10)1+B0(10)0+

20、B-1(10)-1+B-2(10)-2+B-m(10)-m表1.1 二进制(R=2)各位的权(Ri)iRiiRiiRi-10.501664-20.25127128-30.125248256-40.0625389512-50.03125416101024-60.015625532112048 这里这里10对于任何对于任何R进制数来说,形式上一样,但表示数值的大进制数来说,形式上一样,但表示数值的大小随着小随着R的不同而不同。对于二进制数,的不同而不同。对于二进制数,10表示表示2,读作,读作“么零么零”。在书写时,其后用字母在书写时,其后用字母B说明,比如说明,比如101.011B。 11000

21、10111101+ +0+0=00+1=11+0=11+1=100- -0=01- -0=11- -1=010- -1=1 2. 2. 算术运算算术运算 在计算机中,基本的算术运算有四种,即加、减、乘、除,在计算机中,基本的算术运算有四种,即加、减、乘、除,举例如下:举例如下:(1) (1) 加法运算加法运算 例如例如 1101+1011=110001101+1011=11000(2) (2) 减法运算减法运算 例如例如 1101-0110=01111101-0110=0111011101101101- -00=001=010=011=111010110110100001101+1001110

22、00=001=011=1- 11011) 101 101 101 111 101 - 10 (3) (3) 乘法运算乘法运算 例如例如 11011101110=1001110110=1001110(4) (4) 除法运算除法运算 例如例如 1101111011101=101101=101余余10101.2.3 1.2.3 八进制与十六进制数的表示八进制与十六进制数的表示 一般来说一般来说, ,对于任意进制的数都可以写成多项式的形式对于任意进制的数都可以写成多项式的形式: :(N)(N)R R=(N=(Nn-1n-1N Nn-2n-2N N1 1N N0 0.N.N-1-1N N-m-m) )R

23、 R 其中其中n n是整数位数,是整数位数,m m是小数位数,是小数位数,N Ni i表示其中的一个数符。括号中表示其中的一个数符。括号中的的1010,对于任何,对于任何R R进制数来说,只是形式上一样,所表示数值的大小随进制数来说,只是形式上一样,所表示数值的大小随着着R R的不同而不同。的不同而不同。 Ni(10)in-1i=-m= =Nn-1(10)n-1+Nn-2(10)n-2+N1(10)1+N0(10)0+N-1(10)-1+N-2(10)-2+N-m(10)-m1 1八进制数的表示八进制数的表示 在进位计数制中,若令基数在进位计数制中,若令基数R=8R=8,即得八进制数。使用的数

24、,即得八进制数。使用的数符有符有0 0,1 1,7 7,可以,可以O(Octal)O(Octal)作为后缀进行说明。但是由于作为后缀进行说明。但是由于O O与数字与数字0 0在书写时难以区分,因此常以字母在书写时难以区分,因此常以字母Q Q作为后缀,比如作为后缀,比如247.52Q247.52Q。2 2十六进制数的表示十六进制数的表示 在进位计数制中,若令基数在进位计数制中,若令基数R=16R=16,即得十六进制数,使用,即得十六进制数,使用的数符有的数符有0 0,1 1,2 2,9 9,A(10)A(10),B(11)B(11),C(12)C(12),D(13)D(13),E(14)E(14

25、),F(15)F(15),常用字母,常用字母H(Hexadecimal)H(Hexadecimal)作为后缀进行说明,作为后缀进行说明,比如比如1E.5BH1E.5BH。1.2.4 1.2.4 不同进位计数制之间的转换不同进位计数制之间的转换 同一个数在不同的进位制中,其形式不同,但数值却同一个数在不同的进位制中,其形式不同,但数值却是一样的。常用的转换方法有多项式替代法和基数乘除法。是一样的。常用的转换方法有多项式替代法和基数乘除法。1 1多项式替代法多项式替代法 是将欲转换的数展开为多项式,再将多项式中的数符是将欲转换的数展开为多项式,再将多项式中的数符和基数换成要转换的进位计数制的相应数

26、符,然后按所要和基数换成要转换的进位计数制的相应数符,然后按所要转换的进位计数制计算此多项式,其值即为转换结果。转换的进位计数制计算此多项式,其值即为转换结果。【例例1.1】二二-十转换十转换,(1001.11)2=(?)10解:解:(1001.11)2=(11011+01010+0101+1100+110-1+110-10)2 =(123+022+021+120+12-1+12-2)10 =(8+1+0.5+0.25)10 =(9.75)10【例例1.2】 八八-十转换十转换,(372.01)8=(?)10解:解:(372.01)8=(3102+7101+2100+010-1+110-2)8

27、 =(382+781+280+08-1+18-2)10 =(250.015625)10【例例1.31.3】 十六十六-十转换十转换, (B5.8), (B5.8)1616=(?)=(?)1010解:解:(B5.8)(B5.8)1616=(B=(B10101 1+5+510100 0+8+81010-1-1) )1616=(11=(1116161 1+5+516160 0+8+81616-1-1) )1010=(181.5)=(181.5)1010 由于人们最熟悉的是十进制运算,因此这种转换方法尤其由于人们最熟悉的是十进制运算,因此这种转换方法尤其适合于任何进制数到十进制数的转换。而且在转换过程

28、中整数适合于任何进制数到十进制数的转换。而且在转换过程中整数部分和小数部分一并进行。部分和小数部分一并进行。2.2.基数乘除法基数乘除法 (1) (1) 基数除法基数除法-整数转换整数转换 若将若将R R1 1进制的整数转换为进制的整数转换为R R2 2进制的数,可在进制的数,可在R R1 1进制中用基进制中用基数数R R2 2去除该数,所得到的余数即是去除该数,所得到的余数即是R R2 2进制的最低整数位。然后进制的最低整数位。然后对除得的商再用对除得的商再用R R2 2去除,于是又得一余数,这个余数就是去除,于是又得一余数,这个余数就是R R2 2进进制数的次低位。如此不断进行下去,直到商

29、为制数的次低位。如此不断进行下去,直到商为0 0。再将所得到。再将所得到余数的数符换成余数的数符换成R R2 2进制中相应的数符,按先后顺序由低位到进制中相应的数符,按先后顺序由低位到高位排列起来,即得转换结果。高位排列起来,即得转换结果。 【例例1.41.4】 十十-二转换,二转换,(17)(17)1010=(?)=(?)2 2 所以所以(17)(17)1010=(10001)=(10001)2 2【例例1.51.5】十十-八转换,八转换,(127)(127)1010=(?)=(?)8 8 所以所以(127)(127)1010=(177)=(177)8 8 2222217 余余1 余余0 余

30、余0 余余0 余余1 84210 888127余余7 余余7 余余1 151 0【例例1.61.6】十十-十六转换,十六转换,(258)(258)1010=(?)=(?)1616 所以所以(258)(258)1010=(102)=(102)1616 161616161616258258 余余2 2 余余0 0 余余1 116161 1 0 0(2) (2) 基数乘法基数乘法-小数转换小数转换 若将若将R R1 1进制的小数转换为进制的小数转换为R R2 2进制的数,可在进制的数,可在R R1 1进制中用基数进制中用基数R R2 2去乘该数,所得到的整数就是去乘该数,所得到的整数就是R R2 2

31、进制数的最高小数位。然后将乘积进制数的最高小数位。然后将乘积的小数部分再用的小数部分再用R R2 2去乘。于是又得一整数,是去乘。于是又得一整数,是R R2 2进制数的次高小数进制数的次高小数位。如此不断进行下去,直到乘积的小数部分为位。如此不断进行下去,直到乘积的小数部分为0 0或达到转换精度或达到转换精度为止,即得为止,即得R R2 2进制的小数。进制的小数。 【例例1.7】 十十-二转换,二转换,(0.275)10=(?)20.2750.275 0.5500.550 整数部分为整数部分为0 0 1.1001.100 整数部分为整数部分为1 10.1000.100 0.2000.200 整

32、数部分为整数部分为0 0 0.4000.400 整数部分为整数部分为0 0 0.8000.800 整数部分为整数部分为0 0 1.6001.600 整数部分为整数部分为1 10.6000.600 1.2001.200 整数部分为整数部分为1 10.2000.200 循环循环 2 2 2 2 2 2 2 2 2 2 2 2 2 2所以所以(0.275)(0.275)1010(0.0100011)(0.0100011)【例例1.81.8】 十十-八转换,八转换,(0.275)(0.275)1010=(?)=(?)8 8 所以所以(0.275)(0.275)1010(0.21463)(0.21463

33、)8 8 0.275 82.200整数部分为整数部分为20.200 81.600整数部分为整数部分为10.600 84.800整数部分为整数部分为40.800 86.400整数部分为整数部分为60.400 83.200整数部分为整数部分为30.200【例例1.91.9】 十十-十六转换十六转换(0.90)(0.90)1010=(?)=(?)1616 0.9014.40整数部分为整数部分为14(E)0.406.40整数部分为整数部分为60.40循环循环 16 16所以所以(0.90)(0.90)1010(0.E6)(0.E6)1616 对于混小数,在转换时可把整数部分和小数部分分别转换,然对于混

34、小数,在转换时可把整数部分和小数部分分别转换,然后并起来。在小数转换时可能出现无限循环的情况,因此需要根据后并起来。在小数转换时可能出现无限循环的情况,因此需要根据精度要求进行取舍。精度要求进行取舍。3 3二二-八与二八与二-十六转换十六转换 通过上述讨论可知,任何进制数的转换总可以用多项式替代法通过上述讨论可知,任何进制数的转换总可以用多项式替代法或基数乘除法来实现。但是,对于二或基数乘除法来实现。但是,对于二-八与二八与二-十六转换来说,由十六转换来说,由于于8 8和和1616都是都是2 2的整数次幂,因而转换。的整数次幂,因而转换。(1) (1) 二二-八进制转换八进制转换 由于由于2

35、23 3=8=8,因此,因此1 1位八进制数可用位八进制数可用3 3位二进制数来表示,或者位二进制数来表示,或者3 3位二进制数可用位二进制数可用1 1位八进制数表示。在转换时,可直接按位进行。位八进制数表示。在转换时,可直接按位进行。 . 111 010 . 100 1102467001 100 101.010 1002.1454【例例1.101.10】将二进制数将二进制数1100101.0101B1100101.0101B转换成八进制数,过程如下:转换成八进制数,过程如下: 从小数点开始向左和向右每从小数点开始向左和向右每3 3位一组,高位和低位不够位一组,高位和低位不够3 3位时补位时补

36、0 0,即,即 即即 1100101.0101B=145.24Q1100101.0101B=145.24Q【例例1.111.11】将八进制数将八进制数72.46Q72.46Q转换成二进制数,过程如下:转换成二进制数,过程如下: 即即 72.46Q=111010.100110B72.46Q=111010.100110B 2 2二二-十六进制转换十六进制转换 由于由于2 24 4=16=16,因此,因此1 1位十六进制数可用位十六进制数可用4 4位二进制数表示,或者位二进制数表示,或者4 4位二位二进制数用进制数用1 1位十六进制数表示。在进行二进制数与十六进制数之间的转位十六进制数表示。在进行二

37、进制数与十六进制数之间的转换时,可直接按位进行。换时,可直接按位进行。 【例例1.121.12】将二进制数将二进制数101101110.1001001B101101110.1001001B转换成十六进制数,转换成十六进制数,过程如下:过程如下: 从小数点开始向左和向右每从小数点开始向左和向右每4 4位一组,高位和低位不够位一组,高位和低位不够4 4位时补位时补0 0,即,即 即即 101101110.1001001B=16E.92H101101110.1001001B=16E.92H【例例1.131.13】将十六进制数将十六进制数2B8.A5H2B8.A5H转换成二进制数,过程如下:转换成二进

38、制数,过程如下: 即即 2B8.A5H=1010111000.10100101B2B8.A5H=1010111000.10100101B 0010 1011 1000. 1010 01012B8A.5 0001 0110 1110. 1001 001016E9.21.2.5 1.2.5 十进制数与字符的二进制数表示法十进制数与字符的二进制数表示法 由于计算机只能识别二进制数的由于计算机只能识别二进制数的1 1和和0 0,因此十进制数,因此十进制数和一些字符必须用一组二进制数来表示,这组二进制数称和一些字符必须用一组二进制数来表示,这组二进制数称为这个十进制数或字符的二进制编码或代码。最常用的有

39、为这个十进制数或字符的二进制编码或代码。最常用的有BCDBCD和和ASCIIASCII码。码。1.BCD1.BCD码码 BCDBCD码也称二码也称二-十进制编码,选用四位二进制数顺序十进制编码,选用四位二进制数顺序表示的前十个状态来表示十进制数的,对应关系如表示的前十个状态来表示十进制数的,对应关系如表表1.21.2所示。所示。十进制数 对应的BCD码 01234567890000000100100011010001010110011110001001102564096000100000010 0101 0110 0100 0000 1001 0110 不难看出,一位不难看出,一位十进制数的二

40、进制编码十进制数的二进制编码与一般四位二进制数完与一般四位二进制数完全一样,各位的权从左全一样,各位的权从左向右依次为向右依次为8,4,2,1,因此也称为,因此也称为8421码,码,是一种是一种“加权码加权码”或或“权码权码”。表1-2 BCD码2 2ASCIIASCII码码 ASCIIASCII码是美国国家标准信息交换代码码是美国国家标准信息交换代码(American National Standard Code for American National Standard Code for Information InterchangeInformation Interchange),后被

41、国际标准化组织),后被国际标准化组织定为国际标准编码,是目前普遍使用的一种字符编码,定为国际标准编码,是目前普遍使用的一种字符编码,采用采用7 7位二进制数进行编码,可表示位二进制数进行编码,可表示128128种数符和命令,种数符和命令,如如表表1.31.3所示。所示。 b6b5b4b3b2b1b00000010100111001011101110000NULDLESP0Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7GWgw

42、1000BSCAN(8HXhx1001HTEM)9IYIy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?OoDEL表表1.3 ASCII1.3 ASCII码表码表 在实际使用时,在实际使用时,ASCIIASCII码常以二进制数或十六进制数的形码常以二进制数或十六进制数的形式书写。二进制写成式书写。二进制写成b b6 6b b5 5b b4 4b b3 3b b2 2b b1 1b b0 0,例如英文字母,例如英文字母W W的的ASCIIASCII码码为为1010111B1010111B,数符,数符4 4的的ASCIIASCII码为码为0110

43、100B0110100B。若用十六进制数表。若用十六进制数表示,示,W W的的ASCIIASCII码为码为57H57H,4 4的的ASCIIASCII码为码为34H34H。 由于在计算机中,数据常以字节为单位存储或传送,由于在计算机中,数据常以字节为单位存储或传送,ASCIIASCII码只占低码只占低7 7位,因此最高位补位,因此最高位补0 0,或者在传送时用作奇,或者在传送时用作奇/ /偶偶校验位。校验位。 与与ASCIIASCII码类似的还有我国自己颁布的码类似的还有我国自己颁布的“信息处理交换用信息处理交换用的七位编字符集的七位编字符集”。 1.2.6 1.2.6 原码、补码、反码及运算

44、法则原码、补码、反码及运算法则 符合位1010011 01010011 0101001 101010011 1机器数机器数 在计算机中,数有两种。一种是无符号数,另一种是带符号数。常用在计算机中,数有两种。一种是无符号数,另一种是带符号数。常用最高位作为符号位,即最高位作为符号位,即“0 0”表示正数,表示正数,“1 1”表示负数。例如:表示负数。例如: 这种用这种用“0 0”和和“1 1”作为符号,表示的数称为机器数,它所表示的实际作为符号,表示的数称为机器数,它所表示的实际数值称为真值。机器数有一定的长度,即字长,因此所表示数的范围就有数值称为真值。机器数有一定的长度,即字长,因此所表示数

45、的范围就有一定的限制。比如一定的限制。比如8 8位可表示:位可表示: 最大无符号数为最大无符号数为255255(1111111111111111) 最大带符号正数为最大带符号正数为127127(0111111101111111) 当无符号数的值超过当无符号数的值超过255255或者带符号正数的值超过或者带符号正数的值超过127127时,称为溢出。时,称为溢出。 2 2原码与真值原码与真值 仅把二进制数的符号用仅把二进制数的符号用“0 0” ”或或“1 1” ”表示,这样的数称为原码,记作表示,这样的数称为原码,记作XX原原,而,而X X本身称为真值。若设机器字长为本身称为真值。若设机器字长为n

46、 n,则原码的定义为:,则原码的定义为: 其中其中2 2n-1n-1称为模。例如:称为模。例如:X X1 1=+1110010=+1110010, 则则XX1 1 原原=01110010=01110010 X X2 2= =- -01110010111001, 则则XX2 2 原原=10111001=10111001 当机器字长当机器字长n=8n=8时时,+1原原=00000001 - -1原原=10000001 +127原原=01111111 - -127原原=11111111 +0原原=00000000 - -0原原=10000000 X原原= X 0X2n-112n-1+| X | (2

47、n-11)X03.3.补码与运算补码与运算(1) (1) 补码的概念补码的概念 人们在对表时,可以向前旋转,也可以向后倒转。比如现在是下午人们在对表时,可以向前旋转,也可以向后倒转。比如现在是下午2 2点,而你的表指示的是上午点,而你的表指示的是上午1010点。这时,可向前旋转点。这时,可向前旋转4 4个小时;也可以个小时;也可以向后倒转向后倒转8 8个小时。对于个小时。对于1212小时计时制来说,小时计时制来说,+4+4和和-8-8是等价的。因此可是等价的。因此可以说,以说,+4+4是是-8-8相对于相对于1212的的“补码补码”,1212称为称为“模模”;或者说,;或者说,+4+4和和-8

48、-8相相对于模对于模1212互为互为“补数补数”。早期的计算机常把减法。早期的计算机常把减法( (负数负数) )运算转换成相应运算转换成相应补码的加法运算,因此引入补码的加法运算,因此引入“补码补码”的概念。设机器字长为的概念。设机器字长为n n,则补码,则补码的定义为:的定义为: X补补=X 0X2n-112n | X | 2n-1X0 其中其中2n称为模。例如:称为模。例如:X=+1001101 则则X补补=01001101Y=-0101011 则则Y补补=10101100当机器字长当机器字长n=8时,时,+1补补=00000001 -1补补=11111111 +127补补=0111111

49、1 -127补补=10000001 +0补补=-0补补=00000000 补码的求法可概括为:正数的补码与原码相同,负数的补补码的求法可概括为:正数的补码与原码相同,负数的补码是将其原码除符号位外,各位变反,末位加码是将其原码除符号位外,各位变反,末位加1。 (2) (2) 补码运算补码运算 在计算机设计的初期,减法运算主要是通过补码的加法运算来在计算机设计的初期,减法运算主要是通过补码的加法运算来实现。运算法则如下:实现。运算法则如下: 补码加法补码加法XX补补+Y+Y补补=X+Y=X+Y补补 (mod 2mod 2n n) 其中其中|X|X|、|Y|Y|以及以及|X+Y|X+Y|都小于都小

50、于2 2n-1n-1( (以免溢出以免溢出) )。设有两个数。设有两个数X X和和Y Y,则,则XX补补=2=2n n+X+X,YY补补=2=2n n+Y+YXX补补+Y+Y补补=2=2n n+X+2+X+2n n+Y=2+Y=2n+1n+1+(X+Y)=X+Y+(X+Y)=X+Y补补 因此,不管带符号的两数是正数还是负数,其和的补码等于因此,不管带符号的两数是正数还是负数,其和的补码等于两数补码之和。两数补码之和。 X补 = 010010+ Y补 = 110001X+Y补=1000011符号位的进位,丢掉解: X补 = 101110+ Y补 = 110101X+Y补=1100011符号位的进

51、位,丢掉解: 【例例1.141.14】X=+10010X=+10010,Y=-01111Y=-01111,求,求X+YX+Y补补 X+YX+Y补补=000011=000011【例例1.151.15】X=-10010X=-10010,Y=-01011Y=-01011,求,求X+YX+Y补补 X+YX+Y补补=100011=100011 补码减法补码减法补码减法法则可由补码加法推出补码减法法则可由补码加法推出X-Y=X+(-Y)X-Y=X+(-Y),因此:,因此:X-YX-Y补补=X+(-Y)=X+(-Y)补补=X=X补补+-Y+-Y补补这就是说,求这就是说,求X-YX-Y补补实际上就是求实际上就

52、是求XX补补与与-Y-Y补补的和。只要求的和。只要求出出-Y-Y补补,则,则X-YX-Y补补就可以按补码加法的法则进行。就可以按补码加法的法则进行。不难证明不难证明-Y-Y补补等于等于YY补补的每一位(包括符号位)按位变反,的每一位(包括符号位)按位变反,末尾加末尾加1 1。【例例1.16】 X=-0111000,Y=-0010001,求,求X-Y补补解:解:X补补=11001000 Y补补=11101111, -Y补补=00010001 X-Y补补= X补补+-Y补补=110110014.反码与运算反码与运算(1) 反码的概念反码的概念 正数的反码与原码相同,负数的反码是其符号用正数的反码与

53、原码相同,负数的反码是其符号用1表示,其余各表示,其余各位中位中1变为变为0,0变为变为1。也就是说,将其原码除符号位外,各位变反。也就是说,将其原码除符号位外,各位变反。设机器字长为设机器字长为n,则反码的定义为:,则反码的定义为:X补补 = 11001000+ - -Y补补 = 00010001X补补+- -Y补补 = 11011001 其中其中2 2n n1 1称为模。例如:称为模。例如:X X1 1=+1001101 =+1001101 则则XX1 1 反反=01001101=01001101 X X2 2=-0101011 =-0101011 则则XX2 2 反反=11010100=

54、11010100 当机器字长当机器字长n=8n=8时,时,+1+1反反=00000001 -1=00000001 -1反反=11111110=11111110 +127 +127反反=01111111 -127=01111111 -127反反=10000000=10000000 +0 +0反反=00000000 -0=00000000 -0原原=11111111=11111111 反码的求法可概括为:正数的反码与原码相同,负数的反码是将反码的求法可概括为:正数的反码与原码相同,负数的反码是将其原码除符号位外,各位变反。其原码除符号位外,各位变反。 X反反= X 0X2n-11(2n1) | X

55、 | (2n-11)X0(2) (2) 反码运算反码运算 与补码加减法类似,反码运算规则为:与补码加减法类似,反码运算规则为:X+YX+Y反反=X=X反反+Y+Y反反X-YX-Y反反=X=X反反+-Y+-Y反反其中其中-Y-Y反反等于等于YY反反按位变反。由于反码以按位变反。由于反码以2 2n n-1-1为模,所以相为模,所以相加时如果最高符号位有进位,则该进位要加到最低位去,即循加时如果最高符号位有进位,则该进位要加到最低位去,即循环进位。环进位。5.溢出判断溢出判断 无论哪一种数,当它的绝对值超出计算装置的范围时,即发生溢无论哪一种数,当它的绝对值超出计算装置的范围时,即发生溢出。假如运算

56、装置有出。假如运算装置有n位,除去符号位,还有位,除去符号位,还有n-1位表示数量,这样它位表示数量,这样它能表示的最大值为能表示的最大值为2n-1-1。当运算结果大于。当运算结果大于2n-1-1时就要溢出一个时就要溢出一个2n-1。它进位后,占据符号位,从而使运算结果发生错误。前面所述符。它进位后,占据符号位,从而使运算结果发生错误。前面所述符号位的进位不是真正的溢出,而是将模丢掉,真正的溢出是指数值最号位的进位不是真正的溢出,而是将模丢掉,真正的溢出是指数值最高位的进位。高位的进位。 溢出一般发生在两个正数或两个负数相加时。溢出的判断表达式溢出一般发生在两个正数或两个负数相加时。溢出的判断

57、表达式为:为: 溢出溢出=SXSYSS +SXSYSS 另一种表达式为:另一种表达式为: 溢出溢出=CSCP 1.2.7 1.2.7 定点数与浮点数定点数与浮点数 一个十进制数一个十进制数1234.561234.56可写成可写成0.1234560.12345610104 4。 同样,二进制数也写成一个小数和一个以同样,二进制数也写成一个小数和一个以2 2为底的整数次幂的为底的整数次幂的乘积形式。例如乘积形式。例如: :1101.0111101.011可写成可写成0.11010110.11010112 2100100。 对于一般形式,则有:对于一般形式,则有:N=2N=2J JS S N N为任

58、意二进制数,为任意二进制数,S S是二进制纯小数,称为尾数;是二进制纯小数,称为尾数;J J是二进制是二进制整数,称为阶码。尾数整数,称为阶码。尾数S S表示二进制数表示二进制数N N的全部有效数字,阶码的全部有效数字,阶码J J表表明小数点的位置。明小数点的位置。 如果阶码固定不变,则称为定点表示法,这样的数称如果阶码固定不变,则称为定点表示法,这样的数称为定点数。如果阶码可取不同的值,则称为浮点表示法为定点数。如果阶码可取不同的值,则称为浮点表示法,这样的数称为浮点数。,这样的数称为浮点数。(1) (1) 定点数的表示定点数的表示 在定点表示法中,由于阶码固定不变,因此可以省在定点表示法中

59、,由于阶码固定不变,因此可以省去。通常阶码取去。通常阶码取0(0(即纯小数即纯小数) ),或者阶码取,或者阶码取n-1(n-1(即整数即整数) )。例如定点数例如定点数N=1010111N=1010111的表示格式的表示格式如图如图1.11.1所示。所示。符号数值图1.1 定点数格式尾数图1.2 浮点数格式阶码符号阶码尾数符号(2) (2) 浮点数的表示浮点数的表示 在浮点表示法中,阶码可取不同的值,但在一个计算装置中在浮点表示法中,阶码可取不同的值,但在一个计算装置中往 往 有 固 定 的 格 式 。 若 设 阶 码往 往 有 固 定 的 格 式 。 若 设 阶 码 2 2 位 , 尾 数位

60、 , 尾 数 4 4 位 , 比 如位 , 比 如N=2N=210100.10100.1010,其表示格式如图,其表示格式如图1.21.2所示。所示。 NS 1010111JS 10SS 10101.3 1.3 逻辑代数与数字电路逻辑代数与数字电路 1.3.1 1.3.1 逻辑代数逻辑代数 1.3.21.3.2门电路门电路 1.3.3 1.3.3 触发器触发器 1.3.4 1.3.4 组合逻辑电路组合逻辑电路 1.3.5 1.3.5 时序逻辑电路时序逻辑电路 逻辑代数是在逻辑代数是在18491849年由英国著名数学家乔治年由英国著名数学家乔治. .布尔布尔(Geroge (Geroge Boo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论