定点数的乘法运算和除法运算


1、乘法运算


有的机器由硬件乘法器直接完成乘法运算,有的硬件根据乘法运算的方法用软件编程实现;

当计算机没有乘(除)运算线路时,可以采用累加右移相结合,实现乘(除)运算;

  • 笔算乘法

  • 原码乘法

    • 原码一位乘运算

      运算方法:符号位与数值位分开运算,符号位求异或,数值位相乘;

      数值位相乘:在累加寄存器和乘商寄存器这两个寄存器的基础上进行运算;

      数值位相乘的流程:

      n次累加,n次移位

    • 原码两位乘法

  • 补码乘法

    符号位参与运算,

    • 补码一位乘法(Booth算法)

      一种有符号数的乘法,采用相加或相减操作计算补码数据的乘积;

      n+1次累加,n次移位;


2、除法运算


  • 原码除法运算

    商的符号位和数值部分分开处理;

    • 原码恢复余数法:

      A(被除数和余数寄存器)B(除数寄存器),C(乘商寄存器)三个寄存器

    • 原码不恢复余数法(原码加减交替法):

      商放在乘商寄存器,余数放在被除数寄存器;

      规则:

      • 符号位和数值位分开运算;

      • 第一步先用被除数减去除数;

        接下来,

        当余数为正时,商上1,余数和商左移一位,再减去除数;

        当余数为负时,商上0,余数和商左移一位,再加上除数;

        一共n+1次加减,n次左移;

      • 当第n+1步的余数为负时,余数需要加上除数得到第n+1步正确的余数;(即余数和被除数同号)

  • 补码除法运算(补码加减交替法)

    商放在乘商寄存器,余数放在被除数寄存器;

    规则:

    • 符号位参与运算;

    • 第一步,

      若被除数与除数同号,则被除数减去除数;

      若被除数与除数异号,则被除数加上除数;

      接下来,

      若余数与除数同号,则商1,余数左移一位减去除数;

      若余数与除数异号,则商0,余数左移一位加上除数;

      一共n+1次加减,n次左移;

    • 结果末尾恒置1;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值