簡體   English   中英

如何將float轉換為double?

[英]How does converting float to double work?

double可以表示float可以表示的每個值。

將float轉換為double會簡單地通過加0擴展尾數並通過填充符號位來擴展指數部分嗎?

我在http://www.binaryconvert.com/index.html上測試了一些數據。 它以這種方式工作。 但是我沒有找到有關轉換的任何正式定義。 轉換中是否有任何極端情況無法通過這種方式工作?

這與C無關。 它唯一的保證是從floatdouble轉換必須保留該值。

因此,您實際上是在詢問(大概是) IEEE-754 至少有幾種方法不適合您的描述:

  1. 單精度和雙精度的指數有不同的偏差。 因此,轉換不僅需要符號擴展。

  2. 非正常數字需要特殊處理(它們變為正常數字)。

  3. NaN還可能需要特殊處理-區分信號和安靜的NaN取決於尾數的值。

暫無
暫無

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

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