




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理 第三章,王毅(yiwang) 计算机与软件学院,数据表示与数据运算,计算机的基本功能是进行数值运算以及对信息进行加工处理。在计算机内部,各种数值和信息都采用了数字化编码,即用最简单的二进制数码来表示。 本讲主要介绍常用的进位计数制、二进制运算、无符号数和带符号数的表示方法、数的定点与浮点表示方法、字符和汉字的编码方法及数据校验码等。 内容:第三章以及第四章的浮点运算部分内容 熟悉和掌握本章的内容是进行运算器设计的基础和学习计算机原理的最基本要求。,3.1 常用的进位计数制及其相互转换 3.1.1 二进制简介,二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二
2、进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统。 我们最常用的10进制,其实起源于人类有10个指头。 而计算机中采用二进制的原因是什么呢?,计算机内部采用二进制的原因,(1)技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。 (2)简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。 (3)适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。 (4)易于进
3、行转换,二进制与十进制数易于互相转换。 (5)用二进制表示数据具有抗干扰能力强,八进制和十六进制,int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是: 0000 0000 0000 0000 0000 0000 0110 0100 缺点:二进制数太长了,面对这么长的数进行思考或操作,没有人会喜欢。 8、16进制并不是计算机中使用的进制,而是人们为了便于书写和记录计算机中的二进制数而创造的 。引入8(23)进制和16(24)进制后,可分别用一位数代表3位或4位二进制数,缩短二进制数表达长度,但保持了二进制数的表达特点。 (0000 0000 0000 0000 0000
4、 0000 0110 0100 )2=(?)16,3.1.2 数制的概念,进位计数制,简称数制,是人们利用符号来计数的方法。二进制、十进制、八进制和十六进制是学习计算机知识应该掌握的数制。 R进制的数,都有以下三个要点: 基数为R,即使用R个数码。(0,1)(0,1,2,3,4,5,6,7)(1,2,3,4,5,6,7,8,9,a,b,c,d,e,f) (2) 进位规则为逢R进一 (3) 第i个数位上的数码所具有的位权为Ri。 数值可用下面的通式表示: N = Dm-1Dm-2 D1 D0D-1D-2 D-k,3.1.3 数制转换,1. R进制数转换成十进制数 转换方法: 按权展开法, 即把各
5、数位乘权Ri后再相加。 例3.1 将二进制数10111.1转换成十进制数。 (10111.1)2 =124+023+122+121+120+12-1 =16+0+4+2+1+0.5=23.5 例3.2 将十六进制数35CH转换成十进制数 (35C)16 =3162+5161+1216 0 =768+80+12=860 例3.3 将八进制数127.1转换成十进制数 (127.1) 8 =182+281+780+18-1 = 87.125,2.十进制数转换成R进制数,整数转换方法:除基数(R)取余。 小数转换方法:乘基数(R)取整。 例3.4 将十进制数45.25转换成二进制数 整数部分 小数部分
6、 452=22 余1 低位 0.252=0.5 取整数0 高位 222=11 余0 112=5 余1 0.52=1.0 取整数1 低位 52=2 余1 22=1 余0 12=0 余1 高位 所以,45.25=(101101.01)2 或(101101.01)B,3.二进制数转换为十六进制数 4.十六进制转换成二进制数,216转换方法:四位一组。即从最低位开始, 每四位分 成一组(不足四位时补0),依次转换。 例3.6 将二进制数10011010111转换成十六进制数。 0100 1101 0111 最高位补0(粗体字) (4 ) (D ) (7) 所以,(10011010111)2=(4D7)
7、16或(4D7)H 162转换方法:一位变四位。 例3.7 将十六进制数(4AC)H转换成二进制数 4 A C (0100)(1010)(1100) 所以,(4AC)H = (010010101100)B,3.1.4 二进制数据算术运算规则,(2) 减法运算规则 0-0=0 0-1=1 并产生借位 1-0=1 1-1=0,(1) 加法运算规则 0+0=0 0+1=1 1+0=1 1+1=0 并产生进位,例如: 0101,+) 0001,0110,例如: 1011,) 0101,0110,0110,二进制数据算术运算规则,乘法运算规则 例如: 1101 00=0 ) 0101 01=0 1101
8、 10=0 0000 11=1 1101 1000001,除法运算规则 0101 例如: 1101 / 1000001 1000001 / 1101 = 0101 1101 01101 1101 0,3.1.5 逻辑运算,一个二进制数位可以用来表示一个二值逻辑型的数据,但逻辑型数据并不存在进位关系。 这里的与、或、非逻辑可以用与门、或门、非门电路实现 。,3.2 数值数据的表示和运算,计算机中的信息分为:,数值型数据,数据信息,控制信息,非数值型数据,指令编码,问题:,-8.25 如何在计算机中表示? 1、采用什么进位计数制(需要转换为二进制,数制的转换) (-1000.01)2 2、如何处理
9、和表示小数点?(定点、浮点) 3、如何使符号(-,+号)数字化(机器数的编码方法)(1:-;0:+) 4 、如何方便硬件实现运算。(补码),小数点:定点与浮点表示法,1定点数表示法 定点数表示法通常把小数点固定在数值部分的最高位之前, 或把小数点固定在数值部分的最后。前者用来表示纯小数, 后者用于表示整数。 在计算机中, 图示的小数点“”实际上是不表示出来的, 是事先约定好固定在那里的。对一台计算机来说, 一旦确定了一种小数点的位置, 整个系统就不再改变。 只能处理定点数的计算机称为定点计算机。在这种计算机中机器指令访问的所有操作数都是定点数。,定点数要选择合适的比例因子, 确保初始数据、中间
10、结果和最后 结果都在定点数的表示范围之内, 否则就会产生“溢出”。,定点纯小数,定点纯整数,定点表示方法特点,定点数表示数的范围受字长限制,表示数的范围有限; 定点表示的精度有限 机器中,常用定点纯整数表示,2.浮点数表示法,浮点表示法 (科学计数法) 电子质量(克): 910-28 = 0.910-27 太阳质量(克): 21033 = 0.21034 小数点的位置可按需浮动, 这就是浮点数。,浮点数的规格化表示,(1.75)10 = 1.11 20 = 0.111 21 (规格化表示) = 0.0111 22 规格化表示:阶码为纯小数,且小数点后必须为一位有效数字,对二进制而言,必须为1
11、目的:提高表示精度,符号的处理,1. 无符号数和符号数 只能表示正整数.(0=N=2n-1) 符号数:它的最高位被用来表示该数的符号位, 不表示数值位。 在计算机中一个数的数值部分和符号都要用0、1编码。通常, 用数的最高位(MSBMost Significant Bit)表示数的正负 MSB = 0, 表示正数, 如1011表示为01011; MSB = 1, 表示负数, 如1011表示为11011; 2. 机器数与真值的概念 我们把一个数在机器内的二进制表示形式称为机器数,而把这个数本身称为该机器数的真值,真值是用“”,“”号加绝对值来表示数值的大小。如: 机器数: 01011和11011
12、 对应的真值: 1011和1011。,3.原码表示法,原码表示法是一种最简单的机器数表示法, 其最高位为符号位, 符号位为0时表示该数为正, 符号位为1时表示该数为负, 数值部分与真值相同。 若真值为纯小数, 其原码形式为XS . X1X2Xn, 其中XS表示符号位。 原码的定义为:X原 例:X0.0110 X原X0.0110 X-0.0110 , X原1X1(-0.0110)10.0110 1.0110,X 0X1 1X1X 1X0,3.原码表示法,若真值为纯整数, 其原码形式为Xn Xn-1X1X0 , 其中Xn为符号位。 原码的定义为: X原 例3.12:X1101 X原X01101 X
13、1101, X原2nX24(1101)100001101=11101 原码表示中,真值0有两种不同的表示形式: 0原00000, 0原10000 原码的优点是直观易懂, 机器数和真值间的转换很容易,X , 0X2n 2nX2nX, 2nX0,3.原码表示法,用原码实现乘、除运算的规则简单( 符号位可参与运算: xor)。 缺点是加、减运算规则较复杂。(符号位不可直接参与运算) 计算:1+(-1) 00001+10001=10010=-2 符号位如何参与运算 原则: 使符号位能与有效值部分一起参加运算,从而简化运算规则. 符号位参与运算后(减法可转换为加负数)使减法运算转换为加法运算,进一步简化
14、计算机中运算器的线路设计 为解决机器内负数的符号位能与数值位一起参加运算的问题,引入了补码的概念。,4.补码,有模运算: 参与运算的数据和结果被限定在一定范围内,该范围称 为模。 计算机运算受字长限制,属于有模运算. 定点小数x0.x1x2xn ,以2为模 定点整数x0 x1x2xn ,以2n+1为模 有模运算性质 生活例子:现为北京时间下午4点,但钟表显示为7点。有两种办法校对: (1) 做减法 7-3 = 4 (逆时针退3格) (2) 做加法 7+9 = 16 (顺时针进9格) 16 (mod 12) = 16-12 = 4 (以12为模,变成4). 定义钟表的模为12:钟表所能表达的数的
15、个数 定义-3和9互为补数 即 7-3 (7+9) mod 12,(1)补码表示,有模运算:X-Y= X+(-Y)补 mod 补数 负数X的补数:模+X=模-|X| 确定了“模”, 就可找到一个与负数等价的正数( 该正数是负数的补数 )来代替此负数,而这个正数可用模加上负数本身求得, 这样就可把减法运算用加法实现了。 补码表示法利用模和互补的概念, 可使减法运算转化成加法, 从而简化计算机的运算器电路。 例子: 1位数符,4位数值位. 计算10-3 二进制运算通过丢弃高位自动进行模运算。,(2)补码表示,若真值为纯小数, 其原码形式为Xn Xn-1X1X0 , 其中Xn为符号位。 补码的定义为
16、: X补 例3.16:X0.0110 X补X0.0110 X0.0110 X补2X2(0.0110) 100.0110 1.1010,X , 0X1 2X2X, 1X0,(2)补码表示,若真值为纯整数, 其原码形式为Xn Xn-1X1X0 , 其中Xn为符号位。 补码的定义为: X补 例3.17:X1101 X补X01101 X1101 X补2n+1X25(1101)1000001101 10011 在补码表示中, 真值0的表示形式是唯一的: 0补0补00000。10000定义为最小的数-16,X , 0X2n 2n+1X2n+1X ,2nX0,(3)补码运算,采用补码运算要注意以下三个问题:
17、 符号位要与数值位部分一样参加运算。 符号运算后如有进位产生, 则把这个进位舍去不要。 补码运算具有性质:X补Y补XY补 例318:已知X0.1101,Y0.0001,求XY补 解: Y补=10+(-0.0001)=1.1111 X补0.1101 + Y补1.1111 XY补10.1100 舍去不要,相当于模运算 运算时候符号位参与运算,减法可转换为加法。但求补还是要做减法。,5.反码,(1)定义 为方便计算机实现对负数求补。可通过反码求补码。将求补操作改变为简单的求反。 对正数来说,其反码和原码的形式是相同的,而负数的反码是符号位为1,数值部分等于其各位的绝对值求反。如:X X原 X反 11
18、01 01101 01101 1101 11101 10010 在反码表示中,真值0也有两种不同的表示形式: 0反00000 0反11111 (2)负数的补码=反码+1,证明:负数的补码=反码+1,假设二进制补码形式为Xn Xn-1X1X0 , 其中Xn为符号位,共有n+1位。定点整数表示。 证明: 负数补码的定义: X补 2n+1-|X| 其中 |X|为X符号位由1改为0, 可知一个负数|X|加上它的反码x反 ,则此全部二进制位是满的,也就是全部是1,其值为2n + 2n-1 + + 22 + 21 + 20 = 2n+1 1 我们得出一个结论 x反 + |x| = 2n+1 1, x反 =
19、 2n+1 1- |x| 根据负数补码的定义: X补 2n+1-|X|= (2n+1-X-1)+1= x反 +1 通过反码,计算机内部可以通过求反操作和加法得到负数的补码。,6.原码、补码、反码的比较与转换,(1)比较 对正数而言, 上述三种码都等 于真值本身。 最高位都表示符号位,补码 的符号位可与数值位一样看待, 和数值位一起参加运算;但原码 的符号位必须与数值位分开处理。 原码和反码的真值0各有两种 不同的表示方式,而补码的真值0 表示是唯一的。,(2)转换 三种机器数及真值的转换关系如上图所示。从图中可见, 真值X与补 码或反码间的转换是通过原码实现的, 当然, 对于已熟练掌握转换方 法也可直接完成真值X与补码或反码间的转换。,例 以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。(n:数值位数,符号位1位),7.移码,移码也叫增码或偏码,常用于表示浮点数中的阶码。 规格化浮点数大小比较:阶码比较(浮点数加减运算需要对阶比较) 思路:统一加一个偏移量,将负数空间移动到正整数空间方便比较 移码就是在真值X基础上加一常数, 此常数被称为偏置值, 相当于X在数轴上向正向偏移了若干单位, 这就是“移码”一词的由来。即: 对字长为N的计算机, 若最高位为符号位, 数值位n=N-1位,当偏移量取2 n时,其真值X对应的移码的表示公式为: X移 2 n X
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东中考一轮复习测试-第四单元 生物圈中的人 第三章 人体的呼吸
- 农用菌肥销售合同范本
- 科技新品引领办公自动化新趋势
- 科技企业如何利用AI提升制作效率
- 清理小广告合同范本
- 租赁门帘合同范本
- 平原林地出租合同范本
- 新风机安装合同范本
- 科技创新项目申报中的知识产权保护策略
- 短视频在营销中的传播效果研究
- 华为机器视觉好望系列产品介绍
- 多重耐药护理查房
- 《旅游经济学》全书PPT课件
- 中国医院质量安全管理 第3-5部分:医疗保障 消毒供应 T∕CHAS 10-3-5-2019
- 安全评价理论与方法第五章-事故树分析评价法
- 新高考英语读后续写——人物描写高级表达素材
- CoDeSys编程手册
- 幼儿园一日活动流程表
- 中国民俗知识竞赛题(附答案和详细解析)
- 散装水泥罐体标准资料
- 原发性肝癌临床路径最新版
评论
0/150
提交评论