3 个稳定版本
1.2.0 | 2024 年 8 月 8 日 |
---|---|
1.1.0 | 2024 年 8 月 7 日 |
1.0.0 | 2024 年 8 月 3 日 |
261 in 数学
每月 367 次下载
25KB
433 行
i48:Rust 的 48 位有符号整数类型
i48
为 Rust 提供了一种 48 位有符号整数类型,填补了 i32
和 i64
之间的空白。这种类型在某些需要 48 位精度但 64 位过大的场景中可能很有用。
特性
- 高效的 48 位有符号整数表示
- 无缝转换为和从
i64
- 支持基本的算术操作并带有溢出检查
- 位操作
- 从各种字节表示形式(小端、大端、本地)进行转换
- 实现了常见的特性,如
Debug
、Display
、PartialEq
、Eq
、PartialOrd
、Ord
和Hash
安装
将其添加到您的 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
-u127
和i1
-i127
。intx
crate,它提供了具有非标准固定位宽的新整数类型(如u24
、i48
、u96
等)。
依赖关系
~0.2–7MB
~28K SLoC