A Rust library for reversing bits for a specified range of an integer (u32
or u64
).
let x: u32 = 0xF0FFA000;
let y = reverse(x, 8..16);
println!("original: {:08X}", x);
println!(" changed: {}", "....xx..");
println!("reversed: {:08X}", y);
Gives:
original: F0FFA000
changed: ....xx..
reversed: F0FF0500
rev_bits
is available on crates.io:
cargo add rev_bits
rev_bits
has extensive property-based tests thanks to QuickCheck:
cargo test
rev_bits
has benchmarks thanks to Criterion.rs:
cargo bench