整数移位代替法处理浮点

mathFP是一个java上的开发包,利用它,可以用整形变量来处理浮点问题。
传统上,我们采用整数放大10的n次方倍后,进行运算,计算完成后,再缩小10的n次方。换算出结果。
而mathFP就是利用这个思路,不过它不是扩大10的n次方倍,而是扩大2的n次方倍,这样,就可以很方便的利用开发语言中的移位指令做放大缩小处理,大大的提高了运算的速度。
具体来说,一个整数是这样变成FP支持的数的(_fbits是2进制移动的位数)
public static int toFP(int i)
{return i << _fbits;}
如果是小数点以后的数字想变成支持的数,可以这样做:
0.25 -〉 25 << _fbits / 100
那么,得到fp数后,加、减、乘、除的运算分别这样做(假设要运算的fp数为i,j)
i + j;
i - j;
i * j << _fbits;
(i << _fbits) / j << _fbits;
当然,mathFP的处理方法要严谨得多,不够大概的原理就是这样。

http://royelee.spaces.live.com/blog/cns!B8C51C272F3725C0!505.entry

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值