如何在 Rust 中使用十六进制表示法指定浮点数文字?
How to specify a floating point number literal using hexadecimal notation In Rust?
我正在实施 xoshiro256++ 并且我能够生成伪随机 64 位无符号整数。下一个挑战是从 PRNG u64 的单位间隔中生成均匀的双打。
a 64-bit unsigned integer x should be converted to a 64-bit double using the expression
(x >> 11) * 0x1.0p-53
在 Rust 中如何评价这一点?尝试这个我得到编译错误:
error: hexadecimal float literal is not supported
--> src/main.rs:30:56
|
30 | f64::from_bits((x >> 11).wrapping_mul(0x1.0p-53))
| ^^^^^
您可以使用 hexf crate:
#[macro_use]
extern crate hexf;
fn main() {
let v = hexf64!("0x1.0p-53");
println!("{}", v);
}
另请参阅:
我正在实施 xoshiro256++ 并且我能够生成伪随机 64 位无符号整数。下一个挑战是从 PRNG u64 的单位间隔中生成均匀的双打。
a 64-bit unsigned integer x should be converted to a 64-bit double using the expression
(x >> 11) * 0x1.0p-53
在 Rust 中如何评价这一点?尝试这个我得到编译错误:
error: hexadecimal float literal is not supported
--> src/main.rs:30:56
|
30 | f64::from_bits((x >> 11).wrapping_mul(0x1.0p-53))
| ^^^^^
您可以使用 hexf crate:
#[macro_use]
extern crate hexf;
fn main() {
let v = hexf64!("0x1.0p-53");
println!("{}", v);
}
另请参阅: