工具/软件:TI C/C++编译器
我有一个32位带符号整数。 示例-
Int32 POSIT_iQ24;
我打算使用IQ_24转换将其转换为浮点。 目前我的基本错误理解是这样做的。
result_PositionValue =_IQ24toF ((_iQ24) Position_iQ24);
这当然会产生不正确的结果。 请帮助我更好地理解这一IQ转换。 我确实尝试阅读了手册,但没有清楚地掌握内容(我的坏了)。
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
我有一个32位带符号整数。 示例-
Int32 POSIT_iQ24;
我打算使用IQ_24转换将其转换为浮点。 目前我的基本错误理解是这样做的。
result_PositionValue =_IQ24toF ((_iQ24) Position_iQ24);
这当然会产生不正确的结果。 请帮助我更好地理解这一IQ转换。 我确实尝试阅读了手册,但没有清楚地掌握内容(我的坏了)。
谢谢
Raghu
[引用用户="Raghu Rajappa]有趣:)
一个问题。 它是否也适用于负数?? 只是好奇![/QUOT]
它使用负数,我想这取决于你对作品的定义。 我在iQ24中创建了a=0xFE80万,即- 1.5。 我在1.4999.9988万 “CCS表达式”窗口中得到x=-CCS。 如果我更改为十六进制视图,我会看到x=0xBFBFFFFFFF。
"确切"答案是- 1.5 = 0xBFC0万。 因此,当该数字从iQ24转换为float32时,在最后一个二进制位置存在一些数字舍入错误。 理论上讲, 正数也会发生同样的情况。 这是浮点的典型情况。 结果并不总是准确的。
此舍入错误是否是您认为该功能不工作的原因?
此致,
David
另外,在再次阅读文档时,我脑海中弹出了另一个问题。
上述代码行位于 TMS320F2812中。 因为它是定点DSP,所以我不能在DSP上进行此转换吗? 这没有完全意义(如果硬件根本无法转换,为什么TI会提供库函数进行转换),但我仍然要求100 % 确定。