如何将整数向量与字节相互转换?

nev*_*_me 4 rust

我如何转换Vec<u32>为字节,这样[1, 2, 4]应该给我[1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0], 并获取逆字节并将它们转换回整数向量?

我只知道如何转换[u8; 4]成整数。

Sim*_*son 5

也许您正在寻找ByteOrder

use byteorder::{ByteOrder, LittleEndian};

fn main() -> () {
    let rdr = vec![1, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0];
    let mut dst = [0; 3];
    LittleEndian::read_u32_into(&rdr, &mut dst);
    assert_eq!([1,2,4], dst);
    let mut bytes = [0; 12];
    LittleEndian::write_u32_into(&dst, &mut bytes);
    assert_eq!(rdr, bytes);
}
Run Code Online (Sandbox Code Playgroud)

并将箱子添加到 Cargo.toml

[dependencies]
byteorder = "1.4.3"
Run Code Online (Sandbox Code Playgroud)