【除法算法】不恢复余数法和基2-SRT法的算法流程

不恢复余数法算法流程


        X为被除数,D为除数

         0.   数据预处理,使X<D

         1.初始化r0 = X

         2.计算 2*ri

         3.按照如下规则确定qi

         4. 计算ri+1=2*ri-qi*D


除法结果Q=0.q1q2q3q4…(二进制)

 

例:被除数X (0.0101)2 = 5/16  被除数D (0.1100)2 = 3/4

 

SRT算法流程


X为被除数,D为除数

  0. 数据预处理,使X<D,且D范围为[0.5,1)

  1. 初始化r0 = X

  2. 计算 2*ri

  3. 按照如下规则确定qi

 

  4. 计算ri+1=2*ri-qi*D


除法结果Q=0.q1q2q3q4…(二进制)

 

例子:被除数X (0.0101)2 = 5/16  被除数D (0.1100)2 = 3/4

 

注意,-D是用补码表示的。

(除法模拟:http://www.ecs.umass.edu/ece/koren/arith/simulator

附:补码和原码的转换

在计算机系统中,数值一律用补码来表示(存储)。

主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

补码与原码的转换过程几乎是相同的。

数值的补码表示也分两种情况:

(1)正数的补码:与原码相同。

      例如,+9的补码是00001001。

(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

      例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码

     0000111按位取反为1111000;再加1,所以-7的补码是11111001。

已知一个数的补码,求原码的操作分两种情况:

(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。

(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。

     例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为   “1”;其余7位1111001取反后为0000110;再加1,所以是10000111。

 

来自 <https://blog.csdn.net/qq_33467472/article/details/108203567>

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值