本文簡要介紹rust語言中 f32.from_bits
的用法。
用法
pub fn from_bits(v: u32) -> f32
來自 u32
的原始嬗變。
這目前與所有平台上的transmute::<u32, f32>(v)
相同。事實證明這是非常便攜的,原因有兩個:
- 浮點數和整數在所有支持的平台上具有相同的字節序。
- IEEE-754 非常精確地指定了浮點數的位布局。
不過,有一點需要注意:在 IEEE-754 2008 版之前,實際上並未指定如何解釋 NaN 信令位。大多數平台(特別是 x86 和 ARM)選擇了最終在 2008 年標準化的解釋,但有些平台(特別是 MIPS)沒有選擇。因此,MIPS 上的所有信令 NaNs 在 x86 上都是安靜的 NaNs,反之亦然。
此實現傾向於保留確切的位,而不是嘗試保留 signaling-ness cross-platform。這意味著即使此方法的結果通過網絡從 x86 計算機發送到 MIPS 計算機,NaNs 中編碼的任何有效負載也將被保留。
如果此方法的結果僅由產生它們的同一架構操作,則不存在可移植性問題。
如果輸入不是 NaN,則不存在可移植性問題。
如果您不關心信令(很可能),那麽就沒有可移植性問題。
請注意,該函數不同於as
鑄造,試圖保留數字值,而不是按位值。
例子
let v = f32::from_bits(0x41480000);
assert_eq!(v, 12.5);
相關用法
- Rust f32.from_be_bytes用法及代碼示例
- Rust f32.from_ne_bytes用法及代碼示例
- Rust f32.from_le_bytes用法及代碼示例
- Rust f32.fract用法及代碼示例
- Rust f32.floor用法及代碼示例
- Rust f32.exp用法及代碼示例
- Rust f32.hypot用法及代碼示例
- Rust f32.minimum用法及代碼示例
- Rust f32.sqrt用法及代碼示例
- Rust f32.abs_sub用法及代碼示例
- Rust f32.cos用法及代碼示例
- Rust f32.is_sign_positive用法及代碼示例
- Rust f32.log10用法及代碼示例
- Rust f32.total_cmp用法及代碼示例
- Rust f32.recip用法及代碼示例
- Rust f32.sinh用法及代碼示例
- Rust f32.ln_1p用法及代碼示例
- Rust f32.min用法及代碼示例
- Rust f32.to_bits用法及代碼示例
- Rust f32.atan2用法及代碼示例
- Rust f32.to_radians用法及代碼示例
- Rust f32.atanh用法及代碼示例
- Rust f32.cbrt用法及代碼示例
- Rust f32.to_be_bytes用法及代碼示例
- Rust f32.maximum用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 f32.from_bits。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。