在 Python 中,将数据转换为十六进制字符串(hex string)有几种常见方法,以下是几种常用的方式:
将字节串(bytes)转换为十六进制字符串
如果你有一个 bytes 对象,可以使用 .hex() 方法:
data = b'x01x02x03' hex_string = data.hex() print(hex_string) # 输出: 010203
将整数转换为十六进制字符串
使用内置函数 hex():
number = 255 hex_string = hex(number) print(hex_string) # 输出: 0xff
如果你想去掉
0x 前缀,可以使用切片:
hex_string = hex(number)[2:] print(hex_string) # 输出: ff
将字符串转换为十六进制字符串
你可以先将字符串编码为字节,再转换为十六进制:
text = "Hello"
hex_string = text.encode('utf-8').hex()
print(hex_string) # 输出: 48656c6c6f
将十六进制字符串转换回字节或整数
- 十六进制字符串 → 字节:
hex_string = "48656c6c6f" data = bytes.fromhex(hex_string) print(data) # 输出: b'Hello'
- 十六进制字符串 → 整数:
hex_string = "ff" number = int(hex_string, 16) print(number) # 输出: 255
自定义格式化输出(如补零、大写等)
number = 15 hex_string = format(number, '02x') # 两位小写,不足补零 print(hex_string) # 输出: 0f hex_string_upper = format(number, '02X') # 两位大写 print(hex_string_upper) # 输出: 0F
| 输入类型 | 转换方式 | 示例输出 |
|---|---|---|
bytes |
.hex() |
'010203' |
int |
hex() 或 format() |
'0xff' |
str |
.encode().hex() |
'48656c6c6f' |
| hex string | bytes.fromhex() 或 int(..., 16) |
b'Hello' / 255 |
根据你的具体需求选择合适的方法即可。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/484064.html



