rust - 如何在 Rust 中使用十六进制表示法指定浮点数文字?
问题描述
我正在实现xoshiro256++,并且能够生成伪随机 64 位无符号整数。下一个挑战是在 PRNGs u64 的单位间隔中生成统一的双打。
应使用表达式将 64 位无符号整数 x 转换为 64 位双精度
(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 板条箱:
#[macro_use]
extern crate hexf;
fn main() {
let v = hexf64!("0x1.0p-53");
println!("{}", v);
}
也可以看看:
推荐阅读
- python - Django DateTimeField auto_now_add 属性不起作用
- python - 每 5 秒在 Tableau Server 上自动刷新 Tableau Live 仪表板
- jquery - Windows 7 上选择的库中未捕获的类型错误
- java - 对于长度 < 255 个字符且相对速度足够快的字符串,哪个是具有最小冲突的哈希函数?
- c - 如何在visual studio c 中打印■?
- javascript - IE 11 无法从 Angular 中的字节数组创建文件对象
- php - 通过 file_get_contents 发送帖子数据,客户端/浏览器可读的帖子数据?
- email - 将密码直接发送到恢复电子邮件而不是密码重置链接
- java - Intellij 将多个 Java 类声明到一个文件中导致奇怪的 UI
- javascript - 如何在js中解构嵌套对象