Python编程语言中,字节就像一个数组。当我们想要表示一组字节值时,我们可以考虑bytes()数据类型。bytes 数据类型只允许从 0 到 255 的值。这hex() 是 python 中的内置函数之一。它将指定的整数转换为相应的十六进制值。它以“0x”为前缀。它返回一个十六进制字符串。

在本教程中,我们将学习如何使用hex()方法和binascii模块将字节转换为十六进制值。

示例:从字符串中获取字节对象

众所周知,如何将任何整数或字符串转换为字节对象。让我们从将字符串转换为字节对象开始。转换后的字符串,即 bytes 对象可用于转换十六进制值。

string="March"
print("String to be converted :",string)

byte_data=bytes(string,"utf-16")

print("This is the bytes object.")
print("Converted string is:",byte_data)
复制

要转换的字符串:March 这是字节对象。 转换后的字符串为:b'\xff\xfeM\x00a\x00r\x00c\x00h\x00'

示例:使用 hex() 方法将字节转换为十六进制

在上面的示例中,我们将字符串转换为字节对象。我们可以使用该字节对象将其转换为十六进制值。

byte_data="\xff\xfeM\x00a\x00r\x00c\x00h\x00".encode("utf-16")
print("byte to be converted:",byte_data)
print("byte converted to hexadecimal value:",byte_data.hex())
print("Type of this object is:",type(byte_data.hex()))
复制

要转换的字节:b'\xff\xfe\xff\x00\xfe\x00M\x00\x00\x00a\x00\x00\x00r\x00\x00\x00c\x00\x00\x00h\x00\x00\x00' 字节转换为十六进制值:ffffeff00fe004d00000061000000720000006300000068000000 这个对象的类型是:<class 'str'>

示例:使用 binascii 模块将字节转换为十六进制。

binascii 模块由各种方法组成,这些方法将二进制转换为各种编码的二进制表示。在 binascii 模块中,有一个名为 hexlify() 的方法可以将字节转换为十六进制值。

import binascii
string="studytonight"
print("the string is:", string)
in_bytes=bytes(string,"utf-8")
print("string to byte:",in_bytes)
hex_bytes = binascii.hexlify(in_bytes) 
print("hexlify converts the data to hexdecimal value :",hex_bytes) 
hex_str = hex_bytes.decode("ascii")
print("This is the converted hex value:",hex_str)
# To convert hex to bytes 
y=binascii.unhexlify(hex_str)
# unhexlify converts hex value to bytes.
print(y)
复制

字符串是: studytonight 字符串到字节: b'studytonight' hexlify 将数据 转换为十六进制值: b'7374756479746f6e69676874 '这是转换后的十六进制值: 7374756479746f6e69676874 b's

结论

在本教程中,我们学习了如何从 hex() 函数和 binascii 模块将字节对象转换为十六进制值。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐