4 个版本 (稳定)
1.0.2 | 2021 年 9 月 15 日 |
---|---|
1.0.1 | 2021 年 9 月 8 日 |
1.0.0 | 2021 年 9 月 7 日 |
0.1.0 | 2021 年 9 月 7 日 |
944 在 算法 中
12KB
142 行
bit_combi_iter
bit_combi_iter 是一个小型无依赖的 crate,用于枚举小于给定无符号整数值的所有比特组合,保持位中的 1
。
use bit_combi_iter::BitCombinations;
fn main() {
let u = 0b00010100u8;
let mut c = BitCombinations::new(u);
println!("{:#b}", c.next().unwrap()); // => 0b00010010
println!("{:#b}", c.next().unwrap()); // => 0b00010001
println!("{:#b}", c.next().unwrap()); // => 0b00001100
println!("{:#b}", c.next().unwrap()); // => 0b00001010
println!("{:#b}", c.next().unwrap()); // => 0b00001001
println!("{:#b}", c.next().unwrap()); // => 0b00000110
println!("{:#b}", c.next().unwrap()); // => 0b00000101
println!("{:#b}", c.next().unwrap()); // => 0b00000011
println!("{}", c.next().is_none()); // => true
}
当您想要枚举包括 k
个 1 的 n
位整数时,此 crate 非常有用。
// Enumerate all 5 bit integers including 3 ones (as u8)
BitCombinations::new(0b11100u8)
// 11100
// 11010
// 11001
// 10110
// 10101
// ...
安装
将此 crate 添加到 Cargo.toml
中的依赖项。
[dependencies]
bit_combi_iter = "1"
文档
请参阅 API 文档。
特别感谢
许可协议
在 MIT 许可协议 下分发。