#lsb #bit #bit-fields #binary #read-write #msb

bitorder

用于以lsb或msb顺序读取和写入位的库

2个版本

0.0.2 2022年1月24日
0.0.1 2022年1月20日

#1902 in 编码

MIT 许可证

13KB
307

bitorder

一个用于以lsb或msb顺序读取和写入位的库。在byteorder的基础上构建,但针对位。目标是简单且快速。

文档

https://docs.rs/bitorder


lib.rs:

一个用于以Lsb或Msb顺序读取和写入位的小型库。

示例

use bitorder::container::{BitReader, BitWriter};
use bitorder::{Msb0, BitOrder};

let mut data = vec![0u8; 2];
let mut b = BitWriter::<Msb0>::new(&mut data);
b.write_bits(1, 1u8);
b.write_bits(2, 2u8);
b.write_bits(3, 3u8);
b.write_bits(4, 4u8);
b.write_bits(5, 5u8);

assert_eq!(&data, b"\xCD\x0A"); // http://mjfrazer.org/mjfrazer/bitfields/

let mut b = BitReader::<Msb0>::new(&data);
assert_eq!(b.read_bits::<u8>(1), 1u8);
assert_eq!(b.read_bits::<u8>(2), 2u8);
assert_eq!(b.read_bits::<u8>(3), 3u8);
assert_eq!(b.read_bits::<u8>(4), 4u8);
assert_eq!(b.read_bits::<u8>(5), 5u8);

无运行时依赖