计算机组成原理数据的表示和运算,计算机组成原理 No4 数据的表示和运算

《计算机组成原理 No4 数据的表示和运算》由会员分享,可在线阅读,更多相关《计算机组成原理 No4 数据的表示和运算(39页珍藏版)》请在人人文库网上搜索。

1、计算机组成原理,Principles of Computer Composition,2,第二部分 数据的表示和运算,2.1 数制与编码 2.2 定点数表示和运算 2.3 浮点数表示和运算 2.4 算术逻辑单元ALU,3,2.2 定点数表示和运算,2.2.1 定点数的表示 1、无符号数的表示; 2、有符号数的表示。 2.2.2 定点数的运算 1、定点数的位移运算; 2、原码定点数的加/减运算; 3、补码定点数的加/减运算; 4、定点数的乘法运算,4,回顾,1、移位运算 对有符号数的移位运算成为算术移位。 对无符号数的移位运算成为逻辑移位。 算术移位的特点: 对于正数,三种机器数算术移位后符号位。

2、均不变,左移最高位丢1,结果错误;右移最低位丢1,影响精度。 对于负数,三种机器数算术移位后符号位不变。 原码左移,高位丢1,结果出错;原码右移低位丢1,影响精度。 补码左移,高位丢0,结果出错;补码右移低位丢1,影响精度。 反码左移,高位丢0,结果出错;反码右移低位丢0,影响精度。,5,回顾,2、补码定点数的加/减运算 补码加法 补码加法的特点: 符号位作为数的一部分参加运算,符号位的进位丢掉。 运算结果为补码形式 整数 A补 + B补= A+B补 (mod 2n+1) 小数 A补 + B补= A+B补 (mod 2) 补码减法 因为 AB= A+(B ),所以有补码减法: 整数 A B补=。

3、 A+(B )补= A补 + B补 (mod 2n+1) 小数 A B补= A+(B )补= A补 + B补 (mod 2) 从Y补求-Y补的法则是: 对Y补包括符号位“求反且最末位加1”,6,回顾,3、溢出的检测 溢出:运算结果超出机器的表数范围 定点加减法溢出条件: 同号数相加或异号数相减。 运算结果超载。 1)溢出的检测 可能产生溢出的情况 两正数加,变负数,上溢(大于机器所能表示的最大数) 两负数加,变正数,下溢(小于机器所能表示的最小数) 2)溢出的检测方法 双符号位法(参与加减运算的数采用变形补码表示) 单符号位法,7,回顾,4、反码加减法运算 (1)反码加法运算 反码加法运算遵循。

4、 X反+Y反=X+Y反 规则。符号位参加运算。符号位相加后,如果有进位,则把该进位的数字加到数的最低位,即循环进位。 (2)反码减法 两个反码表示的数相减,类似于补码减法,将减数变符号,并根据变号后的减数取反,按反码加法进行。,8,2.2.2 定点数的运算,7、定点数的乘法运算 分析笔算乘法 A = 0.1101 B = 0.1011,AB = 0.10001111,0 . 1 1 0 1,0 . 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0 . 1 0 0 0 1 1 1 1,乘积的符号心算求得,9,2.2.2 定点数的运算,笔算乘法改进,A B = A。

5、 0.1011,= 0.1A + 0.00A + 0.001A +0.0001A,= 0.1A + 0.00A + 0.001( A +0.1A),= 0.1A + 0.010 A + 0. 1( A +0.1A),= 0.1A +0.1 0 A+0.1(A + 0.1A),= 2-1A +2-1 0 A+2-1(A + 2-1(A+0),第一步 被乘数A + 0,第八步 1,得结果,第三步 部分积 + 被乘数,10,2.2.2 定点数的运算,改进后的笔算乘法过程,11,2.2.2 定点数的运算,1)定点原码乘法 (1) 原码一位乘运算规则(以小数为例),设x原 = x0.x1x2 xn,y原。

6、 = y0.y1y2 yn,= (x0 y0). x*y*,x y原 = (x0 y0).(0.x1x2 xn)(0.y1y2 yn),式中 x*= 0.x1x2 xn 为 x 的绝对值,y*= 0.y1y2 yn 为 y 的绝对值,乘积的符号位单独处理 x0 y0,数值部分为绝对值相乘 x* y*,12,2.2.2 定点数的运算,原码一位乘递推公式,x* y* = x*(0.y1y2 yn),= x*(y12-1+y22-2+ + yn2-n),= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) ),z0,13,2.2.2 定点数的运算,右图是一个32位乘法器的结构框图,其。

7、中32位被乘数放在R2中,运算开始时32位乘数放在R1中,运算结束时64位乘积的高位放在R0中,低位放在R1中,R0和R1串联移位。,在该乘法过程中,每次操作是根据乘数的一位进行操作,对于32位数的乘法,需要循环32次完成一个乘法操作,因此称为一位乘法。,14,2.2.2 定点数的运算,完成这个定点原码一位乘法的运算规则可以用如下图所示的逻辑流程图表示。,15,2.2.2 定点数的运算,已知 x = 0.1110 y = 0.1101 求x y原,逻辑右移,逻辑右移,16,2.2.2 定点数的运算, 乘积的符号位 x0 y0 = 1 0 = 1 数值部分按绝对值相乘 x* y* = 0. 1 。

8、0 1 1 0 1 1 0 则 x y原 = 1. 1 0 1 1 0 1 1 0 特点 绝对值运算 用移位的次数判断乘法是否结束 逻辑移位,17,2.2.2 定点数的运算,原码一位乘的硬件配置,A、X、Q 均 n+1 位,移位和加受末位乘数控制,18,2.2.2 定点数的运算,(2)原码两位乘 原码两位乘与原码一位乘一样,符号位的运算和数值部分是分开进行的,但原码两位乘是用两位乘数的状态来决定新的部分积如何形成,因此可提高运算速度。,一位乘,符号位和数值位部分分开运算,两位乘,每次用乘数的2位判断原部分积是否加和 如何加 被乘数,19,2.2.2 定点数的运算,两位乘数共有4种状态,对应这4。

9、种状态可得下表。,20,2.2.2 定点数的运算,原码两位乘运算规则,共有操作 +x* +2x* x* 2,实际操作 +x*补 +2x*补 +x* 补 2 补码移,21,2.2.2 定点数的运算,例:已知 x = 0.111111 y = 0.111001 求xy原,补码右移,22,2.2.2 定点数的运算, 数值部分的运算, 乘积的符号位 x0 y0 = 0 1 = 1,x* y* = 0. 1 1 1 0 0 0 0 0 0 1 1 1,则 x y原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1,特点,绝对值的补码运算,算术移位,用移位的次数判断乘法是否结束,23,2.2.2 。

10、定点数的运算,原码两位乘和原码一位乘比较,符号位,操作数,移位,移位次数,最多加法次数,x0 y0,x0 y0,绝对值,绝对值的补码,逻辑右移,算术右移,n,n,(n为偶数),+1(n为偶数),原码一位乘,原码两位乘,n 为奇数时,原码两位乘移 n/2 +1次,最多加 n/2 +1次,24,2.2.2 定点数的运算,2) 补码乘法 (1)补码与真值的关系 设 x补 = x0.x1x2 xn 当X0时,x0=0,x补 = 0.x1x2 xn=xi2-i = x 当x0 x(0.y1y2 yn) 补 = x补 (0.y1y2 yn) 所以 x.y补= x补 (0.y1y2 yn) + x补,29,。

11、2.2.2 定点数的运算,乘数y补,去掉符号位,操作同 ,最后 加x补,校正,运算规律:,30,2.2.2 定点数的运算, 被乘数、乘数符号任意 设x补 = x0.x1x2 xn y补 = y0.y1y2 yn 综合 ,得到补码乘法统一算式 x y补= x补( 0.y1 yn ) + x补 y0 当y0 时,y0=0 x. y补 = x补. y 当y0 时,y0=1 x.y补= x补 (0.y1y2 yn) + x补,31,补码比较法(Booth 算法),x y补,附加位 yn+1,32,Booth 算法递推公式,z0补= 0,z1补= 2-1(yn+1yn)x补+z0补 yn+1 = 0,z。

12、n补= 2-1(y2y1)x补+zn-1补,x y补= zn补+(y1y0)x补,最后一步不移位,如何实现 yi+1yi ?,0 0,0 1,1 0,1 1,1,+x补 1,+x补 1,1,0,1,-1,0,33,例,已知 x = +0.0011 y = 0.1011 求xy补,解:,0 0 . 0 0 0 0,1 1 . 1 1 0 1,1 1 . 1 1 0 1,0 0 . 0 0 1 1,1 1 . 1 1 0 1,0 0 . 0 0 1 1,1 1 . 1 1 0 1,1 . 0 1 0 1,0,x补 = 0.0011,y补 = 1.0101,x补 = 1.1101,+x补,+x补,+。

13、x补,+x补,+x补, xy补 =1.11011111,最后一步不移位,34,2.2.2 定点数的运算,Booth 算法的硬件配置,35,2.2.2 定点数的运算,补码两位乘 补码两位乘运算规则是根据补码一位乘的规则,把比较yiyi+1的状态应执行的操作和比较yi-1yi 的状态应执行的操作合并成一步,便可得出补码两位乘的运算方法。,36,2.2.2 定点数的运算,操作中出现加2x补和加2-x补,故除右移两位的操作外,还有被乘数左移一位的操作;而加2x补和加2-x补,都可能因溢出而侵占双符号位,故部分积和被乘数采用三位符号位。 补码两位乘的部分积多取一位符号位(共3位),乘数也多取一位符号位(。

14、共2位),这是由于乘数每次右移2位,且用3位判断,故采用双符号位更便于硬件实现。可见,当乘数数值位为偶数时,乘数取2位符号位,共需作n/2次移位,最多作n/2+1次加法,最后一步不移位;当n为奇数时,可补0变为偶数位,以简化逻辑操作。也可对乘数取1位符号位,此时共作n/2+1次加法和n/2+1次移位(最后一步移一位)。 对于整数补码乘法,其过程与小数乘法完全相同。为了区别于小数乘法,在书写上可将符号位和数值位中间的“.”改为“,”即可。,37,2.2.2 定点数的运算,例:x补=0.0101,y补=1.0101 求: x y补。 解:求解过程如下表所示。其中乘数取两位符号位即11.0101, -x补=1.1011 取三符号位为111.1011。,38,乘法小结,原码乘 符号位 单独处理 补码乘 符号位 自然形成,原码乘去掉符号位运算 即为无符号数乘法,不同的乘法运算需有不同的硬件支持,整数乘法与小数乘法完全相同 可用 逗号 代替小数点,39。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序,本次开发一套基于微信小程序的生签到系统,有管理员,教师,学生三个角色。管理员功能有个人中心,学生管理,教师管理,签到管理,学生签到管理,班课信息管理,加入班课管理,请假信息管理,审批信息管理,销假信息管理,系统管理。教师和学生都可以在微信端注册和登录,教师可以管理签到信息,管理班课信息,审批请假信息,查看学生签到,查看加入班级,查看审批信息和销假信息。学生可以查看教师发布的学生签到信息,可以自己选择加入班课信息,添加请假信息,查看审批信息,进行销假操作。基于微信小程序的生签到系统服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json数据数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值