有T::from_str_radix
个字符串可以转换(你可以 Select 基数,T
可以是任何整数类型).
要将整数转换为String
,可以使用format!
:
format!("{:x}", 42) == "2a"
format!("{:X}", 42) == "2A"
要将整数重新解释为字节,只需使用byte_order
crate .
旧答案,我不再建议:
如果你想在u32
和[u8; 4]
之间转换(例如),你可以使用transmute
,这就是它的用途.
还要注意,Rust有to_be
和to_le
个函数来处理持久性:
unsafe { std::mem::transmute::<u32, [u8; 4]>(42u32.to_le()) } == [42, 0, 0, 0]
unsafe { std::mem::transmute::<u32, [u8; 4]>(42u32.to_be()) } == [0, 0, 0, 42]
unsafe { std::mem::transmute::<[u8; 4], u32>([0, 0, 0, 42]) }.to_le() == 0x2a000000
unsafe { std::mem::transmute::<[u8; 4], u32>([0, 0, 0, 42]) }.to_be() == 0x0000002a