gpt4 book ai didi

rust - 如何在Rust中使用十六进制表示法指定 float ?

转载 作者:行者123 更新时间:2023-12-03 11:42:51 26 4
gpt4 key购买 nike

我正在实现xoshiro256++,并且能够生成伪随机的64位无符号整数。下一个挑战是从u64的PRNG生成单位间隔中的均匀加倍。

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);
}
也可以看看:
  • How to create a static string at compile time
  • 关于rust - 如何在Rust中使用十六进制表示法指定 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63488332/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com