1 个稳定版本
| 1.0.0 | 2023年11月30日 |
|---|
#2212 在 算法 中
31KB
489 行
fhex
fhex 是一个 Rust crate,它提供 ToHex 特性,用于将浮点数转换为它们的十六进制表示。该特性实现了对 f32 和 f64 类型的支持。
十六进制表示遵循 IEEE 754 标准中指定的格式,±0xh.hhhp±d,下面将进行描述。
要解析十六进制浮点数,请参阅 hexf crate。
使用方法
将 fhex 添加到您的 Cargo.toml 依赖项中
[dependencies]
fhex = "1.0.0"
然后,在您的代码中导入 ToHex 特性
use fhex::ToHex;
现在您可以在任何 f32 或 f64 值上调用 to_hex 方法
let num: f32 = 1.23;
let hex = num.to_hex();
println!("{}", hex);
这将打印出 1.23 的十六进制表示。
0x1.3ae148p+0
格式
浮点数表示为:±0xh.hhhp±d,其中
±是数字的符号,尽管对于正数省略了+。0x是十六进制数的前缀。h.hhh是有效数字(也称为尾数),表示为十六进制数。p表示以下数字是指数。±d是指数,表示为十进制数。
特殊情况
±0x0p+0用于表示零。±inf用于表示无穷大。nan用于表示 NaN(“安静 NaN”)。nan:0x后跟一个十六进制数用于表示具有负载的 NaN(“信号 NaN”)。
与其他实现已知的不同之处
- Go 的浮点数格式化指定符
%x使用格式±0xh.hhhp±d,但它坚持至少以两位数字打印指数,并使用零填充。无穷大表示为±Inf,NaN 表示为NaN。不会对信号 NaN 进行特殊处理。 - C++ 的浮点数格式化指定符
std::hexfloat使用格式±0xh.hhhp±d。不会对信号 NaN 进行特殊处理,它们只是nan。
许可证
本项目的许可证为 Apache License 2.0 - 请参阅LICENSE 文件以获取详细信息。