首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对整数进行浮点计算

如何对整数进行浮点计算
EN

Stack Overflow用户
提问于 2013-04-10 02:41:26
回答 2查看 9.7K关注 0票数 16

我在主处理器上安装了一个协处理器。一些浮点计算需要在协处理器中完成,但它不支持硬件浮点指令,并且仿真速度太慢。

现在,一种方法是让主处理器缩放浮点值,以便它们可以表示为整数,将它们发送到协处理器,由协处理器执行一些计算,然后在返回时缩减这些值。然而,这在大多数情况下是行不通的,因为数字最终会变得太大或太小而不会超出这些整数的范围。所以我的问题是,什么是正确完成此操作的最快方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-10 02:45:04

你是说仿真太慢了。我猜你指的是浮点数的仿真。如果缩放的整数还不够,剩下的唯一选择是定点数学,但它也不是很快,尽管它比模拟的浮点数快得多。

此外,你永远无法逃脱这样一个事实,即使用缩放整数和fixed point math,你将获得比浮点数更少的dynamic range

但是,如果您预先知道您的范围,则可以针对您需要的范围调整定点数学实现。

Here is一篇关于定点的文章。技巧的要点是决定如何拆分变量,数字的低位和高位部分有多少位。

C的一个完整的定点实现可以是found here。(BSD许可证。)好了,are others

票数 15
EN

Stack Overflow用户

发布于 2013-04-10 18:26:24

除了@Amigable Clark Kant的建议之外,Anthony Williams' fixed point math library还提供了一个C++ fixed类,它几乎可以与floatdouble互换使用,并且在ARM上提供了5倍于软件浮点的性能改进。它包括一个完整的标准数学库的fixed点版本,包括使用CORDIC算法的trig和log函数等。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15909986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档