我有一个[u8; 16384]
and a u16
。我如何“暂时改变”数组以便我可以设置两个u8
一次,第一个到最低有效字节,第二个到最高有效字节?
最明显、安全且可移植的方法就是只使用数学。
fn set_u16_le(a: &mut [u8], v: u16) {
a[0] = v as u8;
a[1] = (v >> 8) as u8;
}
如果您想要更高级别的接口,可以使用byteorder https://crates.io/crates/byteorder板条箱就是为此而设计的。
你绝对应该not use transmute
转动一个[u8]
into a [u16]
,因为这并不能保证anything关于字节顺序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)