#bit-manipulation #bits #boolean #shift #bool #bit

bigwise

对固定大小、任意大缓冲区字节的位运算

4个版本 (破坏性)

使用旧的Rust 2015

0.4.0 2015年8月11日
0.3.0 2015年6月15日
0.2.0 2015年6月7日
0.1.0 2015年6月5日

#10#bitwise

MIT 许可证

96KB
886

Bigwise

这是一个Rust库,它提供了对固定大小、任意大缓冲区字节的位运算。

基本类型 u8u16u32u64 非常有用,当需要一次性对多个位执行布尔代数(位运算)时。

此库补充了这些基本类型,包括后续的2的幂次大小:Bw128Bw256 等。这些类型都是 Copy(即它们可以简单地作为原始内存复制),并且它们的实际大小就是它们名称中给出的大小(Bw256 占用256位)。如果您直接在栈上存储这些类型,可能会很快受到Rust默认栈大小的限制。如果您想让它们在堆上生存,不要忘记将值boxed!

如果提供的类型不够用,您可以通过创建一个指向 BwPair<X> 的别名来轻松地定义自己的类型。仅支持2的幂次大小。

示例

use bigwise::{Bigwise, Bw128};
let b1 = Bw128::from_bytes(&[0b00110110, 0b10001101]);
let b2 = b1 << 90;
let b3 = Bw128::full() >> 60;
let b4 = b1.rotate_right(5);
let b5 = (b2 & !b3) | b4;
print!("{:?}", b5);

依赖关系

~315–540KB