3 个稳定版本

1.2.0 2024 年 8 月 8 日
1.1.0 2024 年 8 月 7 日
1.0.0 2024 年 8 月 3 日

261 in 数学

Download history 113/week @ 2024-07-29 254/week @ 2024-08-05

每月 367 次下载

MIT 许可证

25KB
433

i48:Rust 的 48 位有符号整数类型

i48 为 Rust 提供了一种 48 位有符号整数类型,填补了 i32i64 之间的空白。这种类型在某些需要 48 位精度但 64 位过大的场景中可能很有用。

特性

  • 高效的 48 位有符号整数表示
  • 无缝转换为和从 i64
  • 支持基本的算术操作并带有溢出检查
  • 位操作
  • 从各种字节表示形式(小端、大端、本地)进行转换
  • 实现了常见的特性,如 DebugDisplayPartialEqEqPartialOrdOrdHash

安装

将其添加到您的 Cargo.toml

[dependencies]
i48 = "1.2.0"

使用方法

use i48::i48;

let a: i48 = 1000.into();
let b: i48 = 2000.into();
let c = a + b;

assert_eq!(c.to_i64(), 3000);

安全和限制

  • i48 的有效范围是 [-140,737,488,355,328; 140,737,488,355,327]。
  • 算术操作中的溢出行为与 i64 相同。
  • 位操作在 48 位表示上执行。

处理不受信任的输入或当溢出/下溢是问题时,始终使用带检查的算术操作。

可选功能

  • pyo3:启用 PyO3 绑定以用于 Python。

贡献

欢迎贡献!请随时提交拉取请求。此项目需要更多测试和验证。

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。

这个crate是在i24 crate的孪生项目的基础上诞生的,后者支持48位有符号整数。

此外,还可以查看

  • ux crate,它提供了与内置Rust类型尽可能相似的类型u1-u127i1-i127
  • intx crate,它提供了具有非标准固定位宽的新整数类型(如u24i48u96等)。

依赖关系

~0.2–7MB
~28K SLoC