簡體   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