所以我有一个32位处理器,我可以在C中编程,需要使用固定点来提高速度。
我理解定点表示和基本实现。我在寻找的是如何将数字与不同的十进制位组合在一起。
让我们说我总结Q10 + Q10我会用Q10作为总和。如果我总结Q10和Q20怎么办?算法是否考虑了这两个数字并选择适当的Qx值以最小化精度损失和溢出?我基本上需要加法,减法,乘法和除法。
问题是我的操作可能如下:
2 * 3.14159 * 50 * 1e-4 * 10 + 5.2 * 10
而且我宁愿避免使用缩放和技巧#34;手动"。
答案 0 :(得分:0)
通用处理器没有什么可用的,但有一个项目声称具有可变精度的固定点:https://versaweb.dl.sourceforge.net/project/fixedptc/fixedptc.h。
对于PIC micro,有一些库处理8位大小的不同Q算法,如下所述: http://ww1.microchip.com/downloads/en/AppNotes/00617.pdf 此外,您可能会看到此问题以获得更一般的问题描述。 http://www.superkits.net/whitepapers/Fixed%20Point%20Representation%20&%20Fractional%20Math.pdf 是否需要编写这样的库,如果需要,可以通过一些努力来编写它。