2个稳定版本

1.0.1 2024年7月31日

#244 in 数学

Download history 219/week @ 2024-07-28 9/week @ 2024-08-04

228 每月下载量

MIT许可证

22KB
384

i24:Rust的24位有符号整数类型

i24为Rust提供了一个24位有符号整数类型,填补了i16i32之间的空白。这种类型在音频处理、某些嵌入式系统和其他需要24位精度但32位过于冗余的场合特别有用。

特性

  • 高效的24位有符号整数表示
  • i32无缝转换
  • 支持带有溢出检查的基本算术运算
  • 位运算
  • 从各种字节表示(小端、大端、本地)转换
  • 实现了常见的特性,如DebugDisplayPartialEqEqPartialOrdOrdHash

安装

将其添加到您的Cargo.toml

[dependencies]
i24 = "1.0.0"

用法

use i24::i24;
let a = i24::from_i32(1000);
let b = i24::from_i32(2000);
let c = a + b;
assert_eq!(c.to_i32(), 3000);

安全和限制

  • i24的有效范围是[-8,388,608, 8,388,607]。
  • 算术运算中的溢出行为与i32相同。
  • 位运算在24位表示上执行。处理不受信任的输入或当溢出/下溢是关注点时,始终使用带检查的算术运算。

可选功能

  • pyo3:启用Python的PyO3绑定。

贡献

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

许可证

本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息。

本crate是作为Wavers项目的一部分开发的,该项目是一个Rust的Wav文件读取器和写入器。

依赖关系

~0.2–6MB
~28K SLoC