【发布时间】:2020-05-16 00:16:50
【问题描述】:
我了解 ARM Cortex M4 中使用的小数类型用于最大化 n 位数字的精度,在 q7_t 的情况下它是从 -1 到 1-2^-7 的归一化数字。
但是其使用的典型工作流程是怎样的?是否需要不断地对使用的变量进行规范化和反规范化?
我找到了下一个从单精度浮点数转换为 q7_t 的示例代码,“128”数字在做什么?
float test_float = 3.1416f;
q7_t test_frac = (q7_t)( test_float * 128);
提前谢谢你。
【问题讨论】:
-
你有反汇编吗?
-
“用于最大化 n 位数字的精度”没有什么意义。它仅用于以 8 位表示 +/-1.0。由于 pi X 128 > 255,代码也没有意义。您关于 128 的问题的答案是它会导致算术溢出 - 不能再多说了。该数据类型旨在供关联的 arm_math.h 库使用,而不是通用算术。
标签: c arm embedded signal-processing microcontroller