计算机组成原理-浮点数乘除运算

规律:计算时左移就是右移!加法就是减法!
原码运算符号位异或得出,补码运算符号位运算自然形成;
乘法部分积左移,除法部分积右移
多符号位最高位表示正负,其他位可判断溢出
开始时部分积为0

原码乘法(符号位异或得出,右移)

  • 原码一位乘(一符号位)
    分析笔算乘法过程
    把乘法变拆成加法移位
    符号位取一位
    最终数符由运算数字符号异或得出

  • 原码二位乘(三符号位)
    思路和原码一位乘相同,但每次取乘数末两位判断操作,每次移两位,总体上运算速度比原码一位乘快
    运算时部分积符号位取三位(运算过程中可能会大于2)
    引入Cj位,用y(n-1),y(n),Cj三位共同判断下一步操作
    注意y(n-1)y(n)为“11”时,用先减1倍后加4倍代替加三倍操作
    注意Cj=0/1时操作的循环变化,留意什么操作会重置Cj值
    乘数为奇数在前加0,为偶数加00(两位乘,保证位数为2^n,同时运算结束后保证Cj置0) ,最后一步和附加的00运算时不要移位了!!

补码乘法 (运算过程中形成符号位,右移)

  • 补码一位乘(双符号位)
    1)乘数为正数,被乘数符号任意
    按照原码一位乘规则运算
    2)乘数为负数,被乘数符号任意**(校正法)**
    先忽略乘数符号,按原码一位乘运算,最后再加上[-1*被乘数] (补)
    3)两数字符号均任意**(Booth算法)**
    可由前两种方法导出,增添一项y(n+1)=0,计算从y(n),y(n+1)……
    y(0),y(1)前后两项之差,来决定采取什么加操作
  • 补码两位乘(三符号位)
    采用Booth算法,一次看三位y(n-1),y(n),y(n+1),两次一位乘操作之和累加

原码除法(绝对值计算,符号位异或得出,左移)

  • 要点在于判断够不够除,每次应该商0还是商1
    1)恢复余数法
    一开始先减除数绝对值
    余数为正,商1(够减);
    余数为负,商0(不够减),额外加上除数绝对值;

    2)加减交替法法
    恢复余数法改进,隐藏余数恢复过程
    不论余数,首先左移
    然后若余数>0,商1,减除数绝对值
    若余数<0,商0,加除数绝对值

补码除法(符号位自动形成)

  • 判断够不够减,考虑被除数和除数符号差异,同号减,异号加;
  • 上商时,先左移
    余数和除数同号商1,减除数(补码)
    异号商0,加除数(补码)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值