>>hex_data"\xde\xad\xbe\xef"转换成字节数组>>>importarray>>" />

python byte 数组 和 16进制字符串转换

您所在的位置:网站首页 字节和16进制转换 python byte 数组 和 16进制字符串转换

python byte 数组 和 16进制字符串转换

2023-09-10 13:38| 来源: 网络整理| 查看: 265

假设: hex_string = “deadbeef”

转换成字符串格式

>>> hex_data = hex_string.decode("hex") >>> hex_data "\xde\xad\xbe\xef"

转换成字节数组

>>> import array >>> array.array('B', hex_data) array.array('B', [0xDE, 0xAD, 0xBE, 0xEF])

转换成字节列表

>>> map(ord, hex_data) [0xDE, 0xAD, 0xBE, 0xEF]

如果是2.6以后版本:

>>> bytearray(hex_data) bytearray(b'\xde\xad\xbe\xef')

然而有可能出现无法打印的字符串,例如:\x12\x45\x00AB 这种情况下:不要用.decode(“hex”)

下面的将返回bytearray,并在python3中正常工作 bytearray.fromhex(“de ad be ef 00”)

使用binascii

import binascii a='45222e' s=binascii.unhexlify(a) b=[ord(x) for x in s]

直接编写程序

data = "fef0babe" bits = "" for x in xrange(0, len(data), 2) bits += chr(int(data[x:x+2], 16))

还原byte型字符串 binascii.b2a_hex(hex_data)

出自:stackoverflow



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3