2

Analog Devices 的 BFF-533 处理器不提供原生浮点支持,但提供浮点仿真。

使用 IDE VisualDSP++,用户可以在高性能浮点和严格的 IEEE 合规性之间进行选择。

据我了解,这两者之间的差异导致内存中浮点值的表示不同,因此我进行了以下测试:

union TestType
{
    float hello;
    char test[4];   
};

TestType tt;
tt.hello = 0.00123456789;

我用这两个选项编译并运行了它,期望在测试数组中看到不同的值,但每次运行我得到的都是相同的:

在此处输入图像描述

有人可以解释为什么我在两次运行中都看到了 IEEE 代表吗?

4

1 回答 1

4

您引用的文档讨论了用户定义的fastfloat16类型。您在这里使用本机float类型。我不认为它们是等效的,不管 VisualDSP 设置如何。

“严格的 IEEE 合规性”通常被解释为“即使是边缘情况也得到了正确处理”。IEE754 的边缘情况是非规范化、除以零、无穷大、非数字等。一个例子,在 IEEE754 中NaN != NaN。这意味着您无法进行快速的 32 位比较。另一个例子是 IEEE754 要求基本数学运算精确到最后一位。使用 IEEE754 浮动布局可以显着提高速度,但不能使用 IEEE754 数学。

于 2017-08-09T09:41:16.367 回答