微机原理与嵌入式系统 第二章 计算机中的数制和码_第1页
微机原理与嵌入式系统 第二章 计算机中的数制和码_第2页
微机原理与嵌入式系统 第二章 计算机中的数制和码_第3页
微机原理与嵌入式系统 第二章 计算机中的数制和码_第4页
微机原理与嵌入式系统 第二章 计算机中的数制和码_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第二章计算机中的数制和码制,引言二进制数及编码是所有微型计算机的基本语言,用十六进制数表示和处理二进制数极为方便。因此,建立这些数和编码的雄厚基础,对于深入学习微型计算机是非常重要的。,本章任务,1.给定一个十进制数,能够把它转换成相应的二进制数、十六进制数和BCD(BinaryCodedDecimal)数。2.给定一个二进制数,能够把它转换成相应的十进制数、十六进制数和BCD数。3.给定一个十六进制数,能够把它转换成相应的二进制数、十进制数。4.给定一个BCD数,能够把它转换成相应的十进制数、二进制数。5.能够将字母或数字转换成ASCII(AmericanStandardCodeforInformationInterchange)码,反之亦然。,冯.诺伊曼结构:,(1)由运算器、控制器、存储器、输入设备和输出设备五大部分组成。(2)数据和程序以二进制代码形式不加区别的存放在存储器中,存放位置由地址指定,地址码也为二进制数。(3)控制器是根据存放在存储器中的指令序列即程序来工作的,并由一个程序计数器(即指令地址计数器)控制指令的执行。控制器具有判断能力,能以计算结果为基础,选择不同的动作流程。,2.1计算机中的数制一、十进制数制区别一种数制的基本特征是底数或基数。底数表示所用的字符或数码的数目,这些字符表示数制中量的大小。十进制数引用09十个数码表示量的大小,故底数为10。1.按位计数法:十进制是有位、数的数制。即一个数中的每位都有特定的权,此权决定其数值的大小,每个位权由底数的n次幂确定。,100=1105=100000101=10102=100106=1000000103=1000107=10000000104=10000108=100000000例如:十进制数4603按位计数表示为4*103+6*102+0*101+3*100=4000+600+00+3=46032.小数十进制小数也是具有位权的数。它们的权都是10的负n次幂。,10-1=0.110-5=0.0000110-2=0.0110-6=0.00000110-3=0.00110-7=0.000000110-4=0.000110-8=0.00000001小数点把一个数分为整数和小数两部分。如十进制数278.94,用按位计数法表示为:2*102+7*101+8*100+9*10-1+4*10-2=200+70+8+0.9+0.04=278.94也就是说每位数字乘以它所在的权,相加则得所求的数值。,二、二进制数制按位计数法中最简单的是二进制。它只包括两个元素或状态,即1和0。1.按位计数法和十进制数一样,二进制数的每一位所在的位置均带有一个确定数值大小的特定权。20=1224=10000221=10225=100000222=100226=1000000223=1000227=100000002,例如,二进制数1101012按位计数为:1*25+1*24+0*23+1*22+0*21+1*20=100000+10000+000+100+00+1=11010122.二进制小数把二进制小数表示为2的负n次幂。2-1=0.122-2=0.0122-3=0.00122-4=0.000122-5=0.0000122-6=0.00000122-7=0.000000122-8=0.000000012,例如,二进制数0.1101按位表示为:1*2-1+1*2-2+0*2-3+1*2-4=1*0.12+1*0.012+0*0.0012+1*0.00012=0.12+0.012+0.0002+0.00012=0.110123.二进制数和十进制数的转换(1)二-十进制转换把二进制数转换成相应的十进制数,只要将二进制中出现1的所在位权(转换为十进制)相加即可。整数和小数位权如下:整数小数,.,例如,把二进制数101101.11转换成相应的十进制数:二进制数101101.11位权2524232221202-12-2十进制数32+0+8+4+0+1+0.5+0.25=45.75(2)十进制二进制转换把一个十进制的整数依次除以所需要的底数,就能够转换成不同底数的数。如:把十进制的数转换成相应的二进制数,只要把十进制数依次除以2并记下每次所得的余数(余数总是1或0),所得的余数即为相应的二进制数。,例如,把十进制数25转换成二进制数:25/2=12余数1LSB(leastsignificantbit)12/2=606/2=303/2=111/2=01MSB(mostsignificantbit)收集余数,得到110012=2510要将一个十进制小数转换成不同底数或基数的数时,则应把所需的底数或基数连续不断地乘以该十进制小数,并且记录所得的溢出数(即整数部分),直到小数得0为止。,例如,将十进制数0.3125转换成相应的二进制数。0.3125*2=0.625=0.625溢出0MSB0.6250*2=1.250=0.250溢出10.2500*2=0.500=0.500溢出00.5000*2=1.000=0溢出1LSB即0.3125=0.01012如果十进制数包含整数和小数两部分,则必须将小数点两边的整数和小数分开,分别完成相应的转换,再把二进制整数和小数部分组合在一起。,例如,将十进制数14.375转换成相应的二进制数:14.375=14+0.37514/2=7余数0LSM0.375*2=0.75溢出0MSB7/2=310.750*2=1.5013/2=110.500*2=1.01LSB1/2=01MSB即:14=11102即:0.375=0.0112所以,14.375=14+0.375=11102+0.0112=1110.0112,三、十六进制数制由于二进制数书写和阅读均不方便,所以采用十六进制数来缩写相应的二进制数。顾名思义,十六进制以1610为底,用数字09和字母AF表示。十进制数与十六进制数、二进制数的关系:,2.2计算机中的码制十进制数使用很方便,因为人们熟悉它。而人们不熟悉二进制,所以使用不方便。1.二进制编码的十进制(BCD披着二进制皮的十进制数)尽管用二进制工作有很多硬件设备方面的优点,但转换和认出二进制的大小还是要花费相当多的时间,这是一个明显的缺点。BCD(BinaryCodedDecimal)编码使用四位二进制码表示09个十进制数。它采用标准的8421的纯二进制码的位权值,也称为8421BCD编码。因许多数字设备、仪器仪表均用十进制输入输出,故BCD码被广泛使用。,用BCD码表示十进制数,只要把每个十进制数用适当的二进制4位码代替即可。例如,834用BCD码表示为:100000110100BCD例如,0.7640.011101100100BCD例如,将BCD数转换成相应的十进制数。011000101000.100101010111BCD=628.957,1.1压缩型BCD码:压缩型BCD码是用一个字节表示两位十进制数。例如:2900101001BCD8610000110BCD1.2非压缩型BCD码:非压缩型BCD码用一个字节表示一位十进制数。高4位总是0000,低4位用00001001中的一种组合来表示09中的某一个十进制数。例如:900001001BCD,1.3BCD码运算的修正:a.如果两个对应位BCD数相加的结果向高位无进位,且结果小于或等于9,则该位不需要修正;若结果大于9小于16,则该位需要加6修正。b.如果两个对应位BCD数相加的结果向高位有进位(结果大于或等于16),则该位需要进行加6修正。因此,两个数进行运算时,首先按二进制数进行运算,然后必须用相应的调整指令进行调整,从而得到正确的BCD码结果。1.4总结:a.BCD码的一个优点就是十个BCD码的组合格式容易记忆。一旦你能用二进制数工作,对BCD码就可以像十进制数一样迅速自如地读出。同理,也可以很快地得出以BCD码表示的十进制数。例如:011000101000.100101010100BCD=628.95410,BCD码可以简化人机联系,但比纯二进制码效率低。对同一个给定的十进制数,用BCD码表示的位数比纯二进制码表示的位数要多。例如:83,纯二进制码表示为1010011,只需七位。用BCD码表示时,为10000011,需八位。BCD码效率低,原因是每位数据都需要某些数字电路和他对应,这使得与BCD码连接的附加电路成本提高,设备的复杂性增加,功率消耗较大。用BCD码进行的运算所花的时间比纯二进制码要多,而且复杂。用二进制四位可以表示24=16中不同状态的数,即:015个十进制数。而BCD数制,1015中有六个状态被浪费掉。所以,采用BCD数之后,为了改善数字设备与操作者间的通信,而损失了某些效率代价。,e.十进制BCD码的转换是简单和直接的。但二进制BCD码的转换就不能直接实现。必须先将二进制转换成十进制,然后再转换成BCD码。例如:将二进制1011.01转换成相应的BCD码。首先,将二进制数转换成十进制数1011.01=1*23+0*22+1*21+1*20+0*2-1+1*2-2=11.25然后,将十进制结果转换成BCD码:00010001.00100101BCD将BCD码转换成二进制数,则完成上述运算的逆运算即可。例如:将BCD码10010110.011000100101转换成相应的二进制数。首先,将BCD码转换成十进制数:10010110.011000100101=96.625,然后,将十进制结果转换成二进制数96.625=96+62596/2=48余数00.625*2=1.25溢出148/2=2400.25*2=0.50024/2=1200.50*2=1.0112/2=606/2=303/2=111/2=0110010110.011000100101BCD=1100000.1012,2.ASCII码(AmericanStandardCodeforInformationInterchange),2.3计算机的运算,一、二进制运算1.二进制加法加法的四条规则例如,100011112加101101012(1)0+0=0(2)0+1=110111111(进位)(3)1+1=0进位110110101(4)1+1+1=1进位1+10001111101000100,2.二进制减法二进制减法的四条规则(1)0-0=0(2)1-1=0(3)1-0=1(4)0-1=1借位1例如,110001002减0010010121011110110(借位以后的被减数)11000100-0010010110011111,3.二进制乘法二进制乘法规则(1)0*0=0(2)0*1=0(3)1*0=0(4)1*1=1,例如,11112乘110121111*1101*111100000000(进位)11111111111100(进位)100101111111111000(进位)11000011,4.二进制除法除法是乘法的逆运算。因此,它是确定一个数可以从另一个数中减多少次的过程。例如,1000112被1012除。000111商101100011被除数101111余数101101余数1010余数,5.符号数表示法(1)原码采用这种方法时,一个二进制数同时包含有符号(+或-)和数量。因此正值和负值表示如下:+4510=001011012符号数量-4510=101011012(2)反码用这种方法时,正数表示法与原码的表示方法一样。如+410=000001002+12710=011111112负数表示为正数的反码。一个数的反码是把所有0变成1,所有1变成0而形成的。如上所示,-410=111110112-12710=100000002,(2)反码:,(3)补码用这种方法,正数与原码以及反码法一样表示,也就是说,它对+12710以下的所有正值使用同样的位组合格式,而负数则表示为正数的补码。一个数的补码是把这个数的反码再加1形成的。例如,-4为+4(00000100)的补码。111110112+1111111002注意:8位补码数的范围是从-12810到+12710。还要注意对于0只有一种表示法。,(3)补码:,二、补码的运算,补码表示法的特征是用同一个电路即可以用于无符号数相加,也可以用于有符号数相加。例如,无符号数132和14相加100001002132000011102+14100100102146看上面给出的例子,如果假定输入是有符号的补码数,则为:100001002-124000011102110,1.带符号数的运算(1)正数相加(2)正数和负数相加(3)负数相加(4)溢出的判断(1)正数相加例如,+7加+300000111+7+00000011+300001010+10注意:能表示为补码形式的最大8位正数是+127,如果超过这个值便产生错误。例如,+65加+6701000001+0100001110000100,(2)正数和负数相加例如,+7加-300000111(+7)+11111101+(-3)100000100(+4)丢掉最后的进位注意:如果忽略进位位,则和是正确的。请记住MPU相加两个数时,是把它们看作无符号的二进制数。例如,-9加+811110111(-9)00001000+(+8)11111111(-1)注意:和是-1的补码表示法,(3)负数相加。例如,-3与-4相加11111101(-3)+11111100+(-4)111111001(-7)丢掉最后的进位注意:能用8位表示的最大负数是-128。例如,-120加-1810001000(-120)+11101110(-18)101110110-138注意:和的符号位是0。,(4)溢出的判断:1.进位与溢出:进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。溢出是指带符号数的补码运算的溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。2.溢出的判断:OF=CFVDF若OF=1,结果溢出。若OF=0,则结果未溢出。,CF,DF,2.无符号二进制数减法运算例如,69减260100010169-00011010-26001010114301000101+11100110100101011丢掉最后的进位,三、逻辑运算(1)“与”运算(AND)“与”函数产生两个或两个以上逻辑变量的逻辑积。A

温馨提示

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

评论

0/150

提交评论