繁体   English   中英

Rust [u64; 4] 到 [u8; 32]

[英]Rust [u64; 4] to [u8; 32]

转换[u64; 4]的惯用方式是什么? [u64; 4]切片成[u8; 32] [u8; 32] ?

我尝试遍历u64并使用to_le_bytes()将它们分别转换为[u8; 8] [u8; 8]字节切片形成最终的[u8; 32] [u8; 32]但这似乎没有按预期工作。

有没有我想念的简单方法?

最惯用的方法可能是使用byteorder crate。

use byteorder::{LittleEndian, ByteOrder};

let input = [0u64; 4];
let mut output = [0u8; 32];
LittleEndian::write_u64_into(&input, &mut output);

您还提到to_le_bytes ,所以我假设您希望 output 采用 little-endian,但如果您不确定,那么您很有可能想要使用BigEndian ,因为它在系统之间传输数据时更常用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM