- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]7-运算方法-乘除-浮点-运算器
定点乘法运算 实现乘除法运算的方案: 1、使用乘除运算较多,速度要求高时,硬件直接实现; 2、一般情况,配置乘除法选件; 3、而对速度要求不高的机器,用软件实现。 原码乘法(原码一位乘法) 设[X]原=Xs. X1X2 …Xi…Xn-1Xn=Xs.Xv [Y]原=Ys. Y1Y2…Yi…Yn-1Yn=Ys.Yv 则乘积[Z]原=Zs.Zv=(XsYs).(Xv*Yv) A.手算方法 例如 求A=0.1101和B=0.0110的乘积 运算规则 (a) 从乘数的最低位开始,用乘数B的每个二进制位去乘被乘数A,若B 的某个二进制位为1,则得位积A;如为0,则得位积0。 (b) B的各位分别乘以A的所得的位积,因为位权不同,逐次向左移位,即在空间上按一定位数错开,这样逐位进行下去,直到乘数各位都乘完为止。 (c) 把经过移位对准的各次位积相加起来即得结果。 缺点 第一、?? 将多个数一次相加,机器难以实现。一般的加法器,只能把两个输入数相加,多个位积的同时输入是无法实现的。 第二、?? 乘积位数增长了一倍,即2n,而机器字长只有n位。 (a)把一次求和的操作,变成逐步累加求部分积的操作 (b)将求积过程中逐位按权左移位积的操作,改为位积不动,而是上次部分积右移的操作 B.机器算法: 若用Zi表示第i次部分积,则 Z0 = 0 Z1 = 2-1 (BnA + Z0) Z2 = 2-1 (Bn-1A + Z1) … Zi = 2-1 (Bn-i+1A + Zi-1) … Zn = 2-1 (B1A + Zn-1) Zn即为A和B的乘积,即A·B=Zn 例 已知X=-0.1011 Y=0.1001 求[X·Y]原 解 [X]原=1.1011 [Y]原=0.1001 |X| = 0.1011 |Y| = 0.1001 则按原码一位乘法运算规则,求[X·Y]原的数值部分。 运算过程如下所示: 例 已知X=-0.1011 Y=0.1001 求[X·Y]原 解 [X]原=1.1011 [Y]原=0.1001 |X| = 0.1011 |Y| = 0.1001 则按原码一位乘法运算规则,求[X·Y]原的数值部分。 所以|X|·|Y| = 0 而Zs = XsYs = 10 =1 最后求得[X·Y]原 = 1原码一位乘法逻辑结构原理图 补码乘法 补码一位乘法 (1) 校正法 (2) 比较法 快速乘法运算 1.多位乘法 2.跳过连续“0”和跳过连续“1” 3.阵列乘法器 定点除法运算------原码一位除法 设被除数 [X]原 = Xs.X1X2…Xn 除数 [Y]原 = Ys.Y1Y2…Yn 商 [Q]原 = Qs.Q1Q2…Qn 余数 [R]原 = Rs.R1R2…Rn 则它们之间有如下关系: [X]原 = [Y]原·[Q]原 + [R]原 符号处理 Zs = Xs Ys 1、手算: 假设被除数X=0.1001,除数Y=0.1011,计算X/Y 0. 1 1 0 1 商Q 0.1011?? /---------------------------------------------- ???? 0. 1 0 0 1 0 X(R0) - 0. 0 1 0 1 1 2-1 Y,除数右移一位,减 ---------------------------------- 0. 0 0 1 1 1 0 R1 -?? 0. 0 0 1 0 1 1 2-2 Y,除数右移一位,减 ---------------------------------- 0. 0 0 0 0 1 1 0 R2
文档评论(0)