本文简要介绍rust语言中 f64.from_bits
的用法。
用法
pub fn from_bits(v: u64) -> f64
来自 u64
的原始嬗变。
这目前与所有平台上的transmute::<u64, f64>(v)
相同。事实证明这是非常便携的,原因有两个:
- 浮点数和整数在所有支持的平台上具有相同的字节序。
- IEEE-754 非常精确地指定了浮点数的位布局。
不过,有一点需要注意:在 IEEE-754 2008 版之前,实际上并未指定如何解释 NaN 信令位。大多数平台(特别是 x86 和 ARM)选择了最终在 2008 年标准化的解释,但有些平台(特别是 MIPS)没有选择。因此,MIPS 上的所有信令 NaNs 在 x86 上都是安静的 NaNs,反之亦然。
此实现倾向于保留确切的位,而不是尝试保留 signaling-ness cross-platform。这意味着即使此方法的结果通过网络从 x86 计算机发送到 MIPS 计算机,NaNs 中编码的任何有效负载也将被保留。
如果此方法的结果仅由产生它们的同一架构操作,则不存在可移植性问题。
如果输入不是 NaN,则不存在可移植性问题。
如果您不关心signaling-ness(很可能),那么就没有可移植性问题。
请注意,该函数不同于as
铸造,试图保留数字值,而不是按位值。
例子
let v = f64::from_bits(0x4029000000000000);
assert_eq!(v, 12.5);
相关用法
- Rust f64.from_be_bytes用法及代码示例
- Rust f64.from_ne_bytes用法及代码示例
- Rust f64.from_le_bytes用法及代码示例
- Rust f64.fract用法及代码示例
- Rust f64.floor用法及代码示例
- Rust f64.signum用法及代码示例
- Rust f64.sqrt用法及代码示例
- Rust f64.is_finite用法及代码示例
- Rust f64.round用法及代码示例
- Rust f64.div_euclid用法及代码示例
- Rust f64.hypot用法及代码示例
- Rust f64.log用法及代码示例
- Rust f64.asinh用法及代码示例
- Rust f64.classify用法及代码示例
- Rust f64.abs用法及代码示例
- Rust f64.mul_add用法及代码示例
- Rust f64.asin用法及代码示例
- Rust f64.cbrt用法及代码示例
- Rust f64.to_ne_bytes用法及代码示例
- Rust f64.to_radians用法及代码示例
- Rust f64.min用法及代码示例
- Rust f64.atan用法及代码示例
- Rust f64.is_nan用法及代码示例
- Rust f64.max用法及代码示例
- Rust f64.tanh用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 f64.from_bits。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。