欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

python 字节字符串的 hex 方法 通义 chatgpt 有大用

当你在Python中处理字节串(bytes类型)时,直接打印字节串会显示其内容的可读形式,包括转义字符等。而使用.hex()方法则会将字节串中的每个字节转换成其对应的两位十六进制字符串,不包含任何前缀,方便阅读和处理。

针对你的代码示例:

Python        
1bytes_hash = b"\xb5\xeb"
2print(bytes_hash)
3print(bytes_hash.hex())


  • print(bytes_hash) 的输出将会是 \xb5\xeb,这是字节串的直接表示形式。在这个形式中,\x 后面跟着两位十六进制数表示一个字节的值。所以,\xb5\xeb 分别代表了字节串中的两个字节,其十进制值分别为 181 和 235。

  • print(bytes_hash.hex()) 的输出则是去掉\x前缀的纯十六进制字符串,即 b5eb。这里,每个字节被转换成了相应的两位十六进制数,并且没有前缀,形成了一个连续的十六进制字符串,这对于需要以纯十六进制形式展示或处理数据时非常有用。

因此,这段代码展示了如何初始化一个包含特定字节值的字节串,以及如何分别以原始字节串形式和十六进制字符串形式打印它。




Python 的 bytes 类型确实有一个 .hex() 方法,它可以将字节转换为十六进制字符串表示。以下是您给出的代码片段的正确运行方式:

python复制代码

bytes_hash = b"\xb5\xeb"  

print(bytes_hash)   # 打印字节码  

print(bytes_hash.hex())  # 字节码转换为16进制普通字符串

当您运行这段代码时,输出将是:

复制代码

b'\xb5\xeb'

b5eb

第一行输出 b'\xb5\xeb' 显示了原始的字节码。

第二行输出 b5eb 显示了这些字节的十六进制表示。注意这里并没有前缀 0x 或者后缀(如 Python 中的整数十六进制表示),它只是一个由十六进制字符组成的字符串。


普通分类: