社区导航

 

搜索
查看: 501|回复: 0

[资料分享] 除法运算的C语言定点摸拟

[复制链接]

6216

TA的帖子

19

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-7-12 21:11 | 显示全部楼层 |阅读模式
设浮点除法运算的表达式为:
float x,y,z;
z=x/y;


假设经过统计后被除数x的定标值为Qx,除数y的定标值为Qy,商z的定标值为Qz,则
z=x/y
zq*2-Qz=(xq*2-Qx)/(yq*2-Qy)
zq=(xq*2(Qz-Qx+Qy))/yq
所以定点表示的除法为:
int x,y,z;
long temp;
temp=(long)x;
z=(temp<<(Qz-Qx+Qy))/y;


例1.6定点除法。
设x=18.4,y=36.8,浮点运算值为z=x/y=18.4/36.8=0.5;
根据上节,得Qx=10,Qy=9,Qz=15;所以有
z=18841,y=18841;
temp=(long)18841;
z=(18841L<<(15-10+9)/18841=3O8690944L/18841=16384;
因为商z的定标值为15,所以定点z=16384,即为浮点z=16384/215=0.5。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-4-3 15:51 , Processed in 0.082714 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表