如何将存储'h264'字符的4字节int变量打印为字符序列?
解决方法
要将存储字符序列的4字节整数转换回目标字符串,可通过整数转字节串再解码的方式实现,具体代码如下:
x = 0x68323634 # 对应字符 'h264' # 1. 将整数转为4字节的字节串,指定大端字节序(高位字节在前) byte_content = x.to_bytes(4, byteorder='big') # 2. 将字节串按ASCII编码解码为字符串 result = byte_content.decode('ascii') print(result) # 输出: h264
原理说明
你的整数0x68323634的字节结构对应:0x68(ASCII字符'h')、0x32('2')、0x36('6')、0x34('4'),是按大端字节序存储的(高位字节在前)。
to_bytes(4, byteorder='big')会把整数拆成4个字节,按大端顺序排列,得到字节串b'h264'。decode('ascii')将字节串转换为人类可读的ASCII字符串。
原代码输出数字的原因
str(x)的作用是把整数转换为它的十进制数值字符串,而非解析整数字节内容对应的字符,因此会得到1748121140而非目标字符序列。
内容的提问来源于stack exchange,提问作者lucky1928
相关产品推荐
相关产品推荐

