如何在Python中将二进制字符串(bytes)转换为十六进制?
转换逻辑说明
Python内置hex()方法仅支持接收整数类型入参,用于生成对应整数的十六进制表示字符串,不具备直接处理bytes类型二进制数据的能力,因此直接给hex()传bytes对象会触发类型错误。
二进制转十六进制的可用实现
Python 3.5+ 原生实现(推荐)
直接调用bytes对象自带的.hex()方法即可完成转换,无需导入额外模块:binary_str = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' hex_result = binary_str.hex() # 返回结果为 '00000000000000000000'该方法支持自定义输出分隔符,例如传入
sep=' '即可生成带空格间隔的十六进制串,适配不同的调试或输出格式。如果需要匹配hex()函数带0x前缀的输出格式,直接在返回值前拼接0x即可。跨版本兼容实现
需要兼容Python 2或更早版本的Python 3环境时,可使用标准库binascii完成转换:import binascii binary_str = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' # hexlify 返回bytes类型的十六进制内容,通过ascii解码得到普通字符串 hex_result = binascii.hexlify(binary_str).decode('ascii')
内容的提问来源于stack exchange,提问作者Kiran S youtube channel
相关产品推荐
相关产品推荐

