cra*_*our -4 byte endianness rust
我正在使用人机接口设备协议从外部设备获取数据。我使用的库返回一个字节数组 ( [u8; 64]),我想从一个字节中提取一个字节i7(将i8在 Rust 中)。
我想要操作的字节中有两条不同的信息:
你知道我可以做什么来实现这个目标吗?
使用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();
Run Code Online (Sandbox Code Playgroud)
你的问题很不清楚,但我认为你只是在问正常的位操作。屏蔽 7 位(假设低7 位,尽管你没有说)并将剩余位转换为有符号数:
fn main() {
let byte = 0xFFu8;
let byte2 = (byte & 0b0111_1111) as i8;
println!("{}", byte2);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3440 次 |
| 最近记录: |