如何将浮动转换成双重工作?

时间:2017-07-17 17:28:24

标签: c floating-point double ieee-754 single-precision

double可以表示浮点数可以表示的每个值。

将float转换为double只是通过加0来扩展尾数,并通过填充符号位来扩展指数部分吗?

我在http://www.binaryconvert.com/index.html测试了一些数据。它以这种方式工作。但我没有找到转换的任何官方定义。转换是否有任何不正常的情况?

1 个答案:

答案 0 :(得分:6)

这与C几乎没有关系;唯一的保证是从float转换为double必须保留该值。

所以你真的在询问(大概)IEEE-754。至少有几种方法可以解释您的描述:

  1. 单精度和双精度的指数具有不同的偏差。因此,转换需要的不仅仅是签名扩展。

  2. 非正规数字需要特殊处理(它们成为正常数字)。

  3. NaNs也可能需要特殊处理 - 区分信号和静音NaN取决于尾数的值。