#hex #floating-point #numbers #traits #representation #f32 #f64

fhex

一个提供 ToHex 特性以将浮点数转换为十六进制的 crate

1 个稳定版本

1.0.0 2023年11月30日

#2212算法

Apache-2.0

31KB
489

fhex

fhex 是一个 Rust crate,它提供 ToHex 特性,用于将浮点数转换为它们的十六进制表示。该特性实现了对 f32f64 类型的支持。

十六进制表示遵循 IEEE 754 标准中指定的格式,±0xh.hhhp±d,下面将进行描述。

要解析十六进制浮点数,请参阅 hexf crate。

使用方法

fhex 添加到您的 Cargo.toml 依赖项中

[dependencies]
fhex = "1.0.0"

然后,在您的代码中导入 ToHex 特性

use fhex::ToHex;

现在您可以在任何 f32f64 值上调用 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 文件以获取详细信息。

无运行时依赖