知识卡片

定点数替代浮点

普通读书笔记卡 · 1801.e

内容

没有 FPU 的处理器上,可用整数保存放大后的有理数,以定点运算近似浮点。发散:定点数的难点不在表示,而在每次加减乘除后维护缩放比例和误差边界。

参考来源

- 位置:《嵌入式系统设计与实践》第9章《数学运算》定点数相关小节(源文件:_epub-src/OEBPS/text00132.html附近) - 结论依据:原文明确"对于定点处理器来说,浮点数学运算的代价是非常巨大的(大多数嵌入式应用都是定点处理器)……除非有很好的理由,否则就应该像躲避瘟疫一样避开浮点数。如果不能避开,可以用伪装……任何有理数都可以写成分数(分子对分母的比值)",并说明分母移位越大精度越高但分子越容易溢出。 - 原始内容:相比于整数数学运算,浮点数学运算慢得要死。每个操作都会调用某个库来实现相应的函数,而这个库通常相当巨大……除非有很好的理由,否则就应该像躲避瘟疫一样避开浮点数。如果不能避开,可以用伪装……任何有理数都可以写成分数(分子对分母的比值)……分母中做移位可以减小误差,但同时也增加了分子需要的位数。