繁体   English   中英

不使用IEEE754浮点的C ++编译器/平台

[英]C++ compilers/platforms that don't use IEEE754 floating point

我正在更新序列化库,以便以可移植的方式添加对浮点序列化的支持。 理想情况下,我希望能够在不支持IEEE754的环境中测试代码。 使用软浮动库进行测试是否足够? 或者关于如何正确测试代码的任何其他建议?

您可以在ARM(嵌入式Linux)开发中找到的免费工具链,大多数不支持硬浮动操作,而只支持软浮动。 您可以尝试使用其中一种(即CodeSourcery ),但是您需要某种平台来运行已编译的代码(真正的HW或QEMU)。

或者如果您想在x86机器上执行相同的操作,请查看: 在x86 linux上使用软件浮点

您的库是否应该在硬件浮点和软浮点都不可用的系统上工作? 如果是这样,如果使用带有soft-float的编译器进行测试,则代码可能无法在此类系统上编译/工作。

就个人而言,我会使用没有soft-float的gcc编译器在ARM9系统上测试库。

不是你的实际问题的答案,而是描述你必须做些什么来解决问题。

如果你想支持“不同的”浮点格式,你的代码必须理解浮点数的内部格式[除非你只支持“相同的架构两端”],选择浮点数分成你自己的格式[当然当然可能是IEEE-754,但要注意非正规,128位长双精度,NaN,INFINITY和其他“异常值”,当然还有超出范围的数字],然后将它们重新组合成另一个所需的格式结束。 如果你不是这样做的话,追求非IEEE-754系统是没有意义的,因为它不会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM