我正在使用人机接口(interface)设备协议(protocol)从外部设备获取数据。我正在使用的库返回一个字节数组 ([u8; 64]
),我想从中提取一个 i7
(这将是 i8
在 Rust 中)从一个字节开始。
我要操作的字节有两条不同的信息:
- 1 比特用于某事
- 其他 7 位(我必须将其解码为带符号的整数)用于另一件事。
你知道我该怎么做才能实现这一目标吗?
最佳答案
使用 the crate bitreader
我已经能够正确解码 7 位的带符号整数。
let mut bit_reader = BitReader::new(buffer);
let first_useless_bit: u8 = bit_reader.read_u8(1).unwrap();
let extracted_value: i8 = bit_reader.read_i8(7).unwrap();
关于rust - 从 u8 字节中提取 7 位有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43230917/