已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 计算机中的数制和码制,引言 二进制数及编码是所有微型计算机的基本语言,用十六进制数表示和处理二进制数极为方便。因此,建立这些数和编码的雄厚基础,对于深入学习微型计算机是非常重要的。,本章任务,1. 给定一个十进制数,能够把它转换成相应的二进制数、十六进制数和BCD(Binary Coded Decimal)数。 2. 给定一个二进制数,能够把它转换成相应的十进制数、十六进制数和BCD数。 3. 给定一个十六进制数,能够把它转换成相应的二进制数、十进制数。 4. 给定一个BCD数,能够把它转换成相应的十进制数、二进制数。 5. 能够将字母或数字转换成ASCII(American Standard Code for Information Interchange)码,反之亦然。,冯.诺伊曼结构:,(1)由运算器、控制器、存储器、输入设备 和输出设备五大部分组成。 (2)数据和程序以二进制代码形式不加区别 的存放在存储器中,存放位置由地址指 定,地址码也为二进制数。 (3)控制器是根据存放在存储器中的指令序 列即程序来工作的,并由一个程序计数 器(即指令地址计数器)控制指令的执 行。控制器具有判断能力,能以计算结 果为基础,选择不同的动作流程。,2.1 计算机中的数制 一、十进制数制 区别一种数制的基本特征是底数或基数。底数表示所用的字符或数码的数目,这些字符表示数制中量的大小。 十进制数引用09十个数码表示量的大小,故底数为10。 1. 按位计数法: 十进制是有位、数的数制。即一个数中的每位都有特定的权,此权决定其数值的大小,每个位权由底数的n次幂确定。,100=1 105=100000 101=10 102=100 106=1000000 103=1000 107=10000000 104=10000 108=100000000 例如:十进制数 4603 按位计数表示为 4*103+6*102+0*101+3*100 =4000+600+00+3 =4603 2. 小数 十进制小数也是具有位权的数。它们的权都是10的负n次 幂。,10-1=0.1 10-5=0.00001 10-2=0.01 10-6=0.000001 10-3=0.001 10-7=0.0000001 10-4=0.0001 10-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=12 24=100002 21=102 25=1000002 22=1002 26=10000002 23=10002 27=100000002,例如,二进制数1101012 按位计数为: 1*25+1*24+0*23+1*22+0*21+1*20 =100000+10000+000+100+00+1 =1101012 2.二进制小数 把二进制小数表示为2 的负n次幂。 2-1=0.12 2-2=0.012 2-3=0.0012 2-4=0.00012 2-5=0.000012 2-6=0.0000012 2-7=0.00000012 2-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.11012 3. 二进制数和十进制数的转换 (1)二-十进制转换 把二进制数转换成相应的十进制数,只要将二进制中出现1的 所在位权(转换为十进制)相加即可。整数和小数位权如下: 整数 小数,.,例如,把二进制数101101.11转换成相应的十进制数: 二进制数 1 0 1 1 0 1 . 1 1 位权 25 24 23 22 21 20 2-1 2-2 十进制数 32 + 0 + 8 + 4 + 0 + 1 + 0.5 + 0.25 = 45.75 (2)十进制二进制转换 把一个十进制的整数依次除以所需要的底数,就能够转换成不同 底数的数。如:把十进制的数转换成相应的二进制数,只要把十进制 数依次除以 2 并记下每次所得的余数(余数总是 1 或 0),所得的余 数即为相应的二进制数。,例如,把十进制数25转换成二进制数: 25 / 2 = 12 余数 1 LSB(least significant bit) 12 / 2 = 6 0 6 / 2 = 3 0 3 / 2 = 1 1 1 / 2 = 0 1 MSB(most significant bit ) 收集余数,得到110012 = 2510 要将一个十进制小数转换成不同底数或基数的数 时,则应把所需的底数或基数连续不断地乘以该十进 制小数,并且记录所得的溢出数(即整数部分),直 到小数得 0 为止。,例如,将十进制数0.3125转换成相应的二进制数。 0.3125*2=0.625=0.625 溢出 0 MSB 0.6250*2=1.250=0.250 溢出 1 0.2500*2=0.500=0.500 溢出 0 0.5000*2=1.000=0 溢出 1 LSB 即 0.3125=0.01012 如果十进制数包含整数和小数两部分,则必须将小数点 两边的整数和小数分开,分别完成相应的转换,再把二进制 整数和小数部分组合在一起。,例如,将十进制数14.375转换成相应的二进制数: 14.375=14+0.375 14/2=7 余数 0 LSM 0.375*2=0.75 溢出 0 MSB 7/2=3 1 0.750*2=1.50 1 3/2=1 1 0.500*2=1.0 1 LSB 1/2=0 1 MSB 即:14=11102 即:0.375=0.0112 所以,14.375 =14+0.375 =11102+0.0112 =1110.0112,三、十六进制数制 由于二进制数书写和阅读均不方便,所以采用十六进制数来缩写相应 的二进制数。顾名思义,十六进制以1610为底,用数字09和字母AF表 示。 十进制数与十六进制数、二进制数的关系:,2.2 计算机中的码制 十进制数使用很方便,因为人们熟悉它。而人们不熟悉 二进制,所以使用不方便。 1. 二进制编码的十进制(BCD 披着二进制皮的十进制数) 尽管用二进制工作有很多硬件设备方面的优点,但转换 和认出二进制的大小还是要花费相当多的时间,这是一个明 显的缺点。 BCD (Binary Coded Decimal)编码使用四位二进制码 表示09个十进制数。它采用标准的8421的纯二进制码的位 权值,也称为8421BCD编码。因许多数字设备、仪器仪表 均用十进制输入输出,故BCD码被广泛使用。,用BCD码表示十进制数,只要把每个十进制数用适当的二进制4位码代替即可。 例如,834用BCD码表示为: 1000 0011 0100 BCD 例如,0.764 0.0111 0110 0100 BCD 例如,将BCD数转换成相应的十进制数。 0110 0010 1000.1001 0101 0111BCD =628.957,1.1 压缩型BCD码: 压缩型BCD码是用一个字节表示两位十进制数。 例如:29 0010 1001BCD 86 1000 0110BCD 1.2 非压缩型BCD码: 非压缩型BCD码用一个字节表示一位十进制数。高4位总是0000,低4位用00001001中的一种组合来表示09中的某一个十进制数。 例如:9 0000 1001BCD,1.3 BCD码运算的修正: a. 如果两个对应位BCD数相加的结果向高位无进位,且结果小于或等于9,则该位不需要修正;若结果大于9小于16,则该位需要加6修正。 b. 如果两个对应位BCD数相加的结果向高位有进位(结果大于或等于16),则该位需要进行加6修正。 因此,两个数进行运算时,首先按二进制数进行运算,然后必须用相应的调整指令进行调整,从而得到正确的BCD码结果。 1.4 总结: a. BCD码的一个优点就是十个BCD码的组合格式容易记忆。一旦你能用二进制数工作,对BCD码就可以像十进制数一样迅速自如地读出。同理,也可以很快地得出以BCD码表示的十进制数。例如: 0110 0010 1000.1001 0101 0100BCD=628.95410,BCD码可以简化人机联系,但比纯二进制码效率低。对同一个给定的十进制数,用BCD码表示的位数比纯二进制码表示的位数要多。例如:83,纯二进制码表示为1010011,只需七位。用BCD码表示时,为1000 0011,需八位。 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码: 0001 0001.0010 0101BCD 将BCD码转换成二进制数,则完成上述运算的逆运算即可。例如:将BCD码1001 0110.0110 0010 0101转换成相应的二进制数。 首先,将BCD码转换成十进制数: 1001 0110.0110 0010 0101=96.625,然后,将十进制结果转换成二进制数 96.625=96+625 96/2=48 余数 0 0.625*2=1.25 溢出1 48/2=24 0 0.25*2=0.50 0 24/2=12 0 0.50*2=1.0 1 12/2=6 0 6/2=3 0 3/2=1 1 1/2=0 1 1001 0110.0110 0010 0101BCD = 1100000.1012,2.ASCII码(American Standard Code for Information Interchange),2.3 计算机的运算,一、二进制运算 1.二进制加法 加法的四条规则 例如,100011112 加 101101012 (1)0+0=0 (2)0+1=1 1 0 1 1 1 1 1 1 (进位) (3)1+1=0 进位1 1 0 1 1 0 1 0 1 (4)1+1+1=1 进位1 + 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0,2. 二进制减法 二进制减法的四条规则 (1)0-0=0 (2)1-1=0 (3)1-0=1 (4)0-1=1 借位1 例如,110001002 减 001001012 1 0 1 1 1 10 1 10 (借位以后的被减数) 1 1 0 0 0 1 0 0 - 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1,3.二进制乘法 二进制乘法规则 (1)0*0=0 (2)0*1=0 (3)1*0=0 (4)1*1=1,例如,11112乘11012 1 1 1 1 * 1 1 0 1 * 1 1 1 1 0 0 0 0 0 0 0 0 (进位) 1 1 1 1 1 1 1 1 1 1 1 1 0 0 (进位) 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 (进位) 1 1 0 0 0 0 1 1,4.二进制除法 除法是乘法的逆运算。因此,它是确定一个数可以从另一个数中减 多少次的过程。 例如,1000112 被 1012 除。 0 0 0 1 1 1 商 1 0 1 1 0 0 0 1 1 被除数 1 0 1 1 1 1 余数 1 0 1 1 0 1 余数 1 0 1 0 余数,5. 符号数表示法 (1)原码 采用这种方法时,一个二进制数同时包含有符号(+或-)和数量。 因此正值和负值表示如下: +4510 = 0 0 1 0 1 1 0 1 2 符号 数量 -4510 = 1 0 1 0 1 1 0 1 2 (2)反码 用这种方法时,正数表示法与原码的表示方法一样。如 + 4 10 = 0 0 0 0 0 1 0 0 2 +12710 = 0 1 1 1 1 1 1 1 2 负数表示为正数的反码。一个数的反码是把所有0变成1,所有1变成 0而形成的。如上所示, - 410 = 1 1 1 1 1 0 1 1 2 -12710 = 1 0 0 0 0 0 0 0 2,(2)反码:,(3)补码 用这种方法,正数与原码以及反码法一样表示,也就是说,它对+12710以下的所有正值使用同样的位组合格式,而负数则表示为正数的补码。 一个数的补码是把这个数的反码再加1形成的。例如,-4为+4(00000100)的补码。 1 1 1 1 1 0 1 1 2 + 1 1 1 1 1 1 1 0 0 2 注意:8位补码数的范围是从-12810到+12710。还要注意对于0 只有一种表示法。,(3)补码:,二、补码的运算,补码表示法的特征是用同一个电路即可以用于无符号数 相加,也可以用于有符号数相加。 例如,无符号数132和14相加 1 0 0 0 0 1 0 0 2 132 0 0 0 0 1 1 1 0 2 +14 1 0 0 1 0 0 1 0 2 146 看上面给出的例子,如果假定输入是有符号的补码数,则为: 1 0 0 0 0 1 0 0 2 -124 0 0 0 0 1 1 1 0 2 +14 1 0 0 1 0 0 1 0 2 -110,1.带符号数的运算 (1)正数相加(2)正数和负数相加(3)负数相加 (4)溢出的判断 (1)正数相加 例如,+7加+3 0 0 0 0 0 1 1 1 +7 + 0 0 0 0 0 0 1 1 +3 0 0 0 0 1 0 1 0 +10 注意:能表示为补码形式的最大8位正数是+127,如果超过这个值便产生错误。例如,+65加+67 0 1 0 0 0 0 0 1 + 0 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0,(2)正数和负数相加 例如,+7加-3 0 0 0 0 0 1 1 1 (+7) + 1 1 1 1 1 1 0 1 +(-3) 1 0 0 0 0 0 1 0 0 (+4) 丢掉最后的进位 注意:如果忽略进位位,则和是正确的。请记住MPU相加两个数时,是把它们看作无符号的二进制数。 例如,-9加+8 1 1 1 1 0 1 1 1 (-9) 0 0 0 0 1 0 0 0 + (+8) 1 1 1 1 1 1 1 1 (-1) 注意:和是-1的补码表示法,(3)负数相加。 例如,-3与-4相加 1 1 1 1 1 1 0 1 (-3) + 1 1 1 1 1 1 0 0 +(-4) 1 1 1 1 1 1 0 0 1 (-7) 丢掉最后的进位 注意:能用8位表示的最大负数是-128。例如,-120加-18 1 0 0 0 1 0 0 0 (-120) + 1 1 1 0 1 1 1 0 (-18) 1 0 1 1 1 0 1 1 0 -138 注意:和的符号位是0。,(4)溢出的判断: 1. 进位与溢出: 进位是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。 溢出是指带符号数的补码运算的溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。 2. 溢出的判断: OF = CF V DF 若OF=1,结果溢出。若OF=0,则结果未溢出。,CF,DF,2. 无符号二进制数减法运算 例如,69减26 0 1 0 0 0 1 0 1 69 - 0 0 0 1 1 0 1 0 - 26 0 0 1 0 1 0 1 1 43 0 1 0 0 0 1 0 1 + 1 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 1 丢掉最后的进位,三、逻辑运算 (1)“与”运算(AND) “与” 函数产生两个或两个以上逻辑变量的逻辑积。 A * B = C 即:如果所有输入变量是逻辑1,则其“与”运算的逻辑积是逻辑1。如果输入变量中任意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋装修的合同范本
- 房屋赠送合同于协议
- 房屋部分赠予协议书
- 房屋预出售合同范本
- 房租拆除转让协议书
- 房租预定协议书范本
- 房间门购买合同范本
- 手机制作合同协议书
- 手机终端技术协议书
- 基于绿色制造的增材制造节能技术研究
- 西溪国家湿地公园规划设计分析课件
- 东宝秘浴内训版
- BRC管理手册样本
- 广东区域地质构造简介之一-断裂特征介绍
- 机械原理课程设计-自动打印机设计说明书
- T-CAMET 04017.2-2019 城市轨道交通 全自动运行系统规范 第2部分:核心设备产品
- 二次回风空调过程计算
- 浙江政采云网上超全一张网供应商承诺书
- 《电路原理》课后习习题答案
- 焊条牌号、型号对照表
- 材料(设备)品牌确认单(安装)
评论
0/150
提交评论