如何在Rust中实现类似Python的to_bytes整数转字节功能?
在Rust中实现Python的
to_bytes(2, byteorder="little")效果 要在Rust中得到和Python示例等价的原始字节串,直接用整数类型的to_le_bytes()方法即可,这是最直接的等价实现:
核心实现代码
fn main() { // 示例:替换成你实际要计算长度的对象 let x = "example_content"; // 将长度转为u16(对应2字节),再生成小端字节数组 let len_u16 = x.len() as u16; let byte_array = len_u16.to_le_bytes(); // 当x长度为10时,输出结果对应Python的b'\n\x00' println!("{:?}", byte_array); }
关键说明
to_le_bytes()方法直接返回小端字节序的固定长度数组(u16对应[u8; 2]),完全等价于Python的len(x).to_bytes(2, byteorder="little"),输出的是原始字节格式,可直接用于网络请求。- 你之前尝试的
{:x}格式是生成十六进制字符串,属于文本格式,和原始字节不是同一类型,因此无法达到等价效果。
安全转换(可选)
如果需要避免长度超过2字节范围时的静默溢出,可用安全转换替代强制类型转换:
let len_u16: u16 = x.len().try_into().expect("长度超过2字节最大范围(65535)");
内容的提问来源于stack exchange,提问作者null
相关产品推荐
相关产品推荐

