簡體   English   中英

為什么IEEE-754浮點數不能在平台之間交換?

[英]Why is IEEE-754 Floating Point not exchangable between platforms?

已經斷言 (甚至考慮字節字節序)IEEE754浮點並不保證在平台之間可以交換。

所以:

  • 理論上,為什么IEEE浮點不能在平台之間交換?
  • 這些問題是否適用於現代硬件平台(例如i686,x64,arm)?

如果問題是有效的,您能否請舉例說明這種情況(首選C或C ++)?


動機:一些GPS 制造商在“符合IEEE-754標准的浮點值”中為(例如)緯度,經度和原始數據交換其二進制格式。 所以,我無法控制選擇文本格式或其他“便攜式”格式。 因此,我的問題是何時可能會或可能不會發生差異。

IEEE 754第3.4條規定了二進制交換格式編碼。 給定浮點格式(下面),交換格式將符號位置於最高有效位中,將下一個最高有效位中的偏置指數位置位,並將有效位編碼置於最低有效位中。 未指定從位到字節的映射,因此系統可以使用little-endian,big-endian或其他排序。

第3.6節規定了各種格式寬度的格式參數,包括64位二進制,其中有一個符號位,11個指數字段位和52個有效位字段位。 該子句還規定了指數偏差。

第3.3和3.4條規定了該格式所代表的數據。

因此,為了交換IEEE-754浮點數據,似乎系統只需要就兩件事達成一致:使用哪種格式(例如,64位二進制)以及如何來回獲取位(例如,如何映射)用於寫入文件或網絡消息的位到字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM