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 文件以获取详细信息。