python 16进制转字符串
时间: 2023-08-30 22:09:29 浏览: 99
可以使用Python内置函数hex()来将字符串转换为16进制,再使用Python内置函数chr()将16进制转为字符串。示例如下:
```
# 将字符串转为16进制
hex_str = '68656c6c6f'
# 将16进制转为字符串
string = ''
for i in range(0, len(hex_str), 2):
string += chr(int(hex_str[i:i+2], 16))
print(string) # 输出:hello
```
注意:以上代码用于教学研究目的,不能用于非法用途。
相关问题
python 16进制补零_Python输出16进制不带0x补零,整数转16进制,字符串转16进制
Python中输出16进制时,可以使用`hex()`函数将整数转换为16进制字符串。但是默认情况下,输出的16进制字符串不带前缀0x,也不会补0。如果需要在输出的16进制字符串前补0,可以使用字符串格式化操作符`%`或者字符串的`format()`方法。
以下分别介绍整数转16进制、字符串转16进制以及16进制字符串补0的方法。
### 整数转16进制
```python
num = 255
hex_str = hex(num)[2:].zfill(2) # 去掉前缀0x,补0到两位
print(hex_str) # 'ff'
```
这里使用了`hex()`函数将整数转换为16进制字符串,然后通过切片去掉前缀0x,最后使用`zfill()`函数在字符串前补0。
### 字符串转16进制
```python
string = 'hello world'
hex_str = ''.join([hex(ord(c))[2:].zfill(2) for c in string])
print(hex_str) # '68656c6c6f20776f726c64'
```
这里使用了列表推导式和`join()`函数将每个字符转换为16进制字符串,并将它们拼接成一个长字符串。其中,`ord()`函数将字符转换为它的ASCII码,然后使用`hex()`函数将ASCII码转换为16进制字符串。
### 16进制字符串补0
```python
hex_str = 'a1b2c'
hex_str = hex_str.zfill(8) # 补0到8位
print(hex_str) # '00a1b2c'
```
这里使用了字符串的`zfill()`方法,在字符串前补0,使它达到指定的宽度。
python 16进制字节字符串如何合并
可以使用binascii模块中的unhexlify()函数将16进制字符串转换为字节串,然后使用加号(+)将两个字节串合并。具体实现方法如下所示:
```python
import binascii
hex_str1 = '68656c6c6f'
hex_str2 = '776f726c64'
byte_str1 = binascii.unhexlify(hex_str1)
byte_str2 = binascii.unhexlify(hex_str2)
merged_byte_str = byte_str1 + byte_str2
print(merged_byte_str.hex()) # 输出:68656c6c6f776f726c64
```
阅读全文