十六进制到二进制(一次2个十六进制数字) - python

时间:2015-10-26 00:58:24

标签: python python-2.7

我想取十六进制数,例如4e40b844800742db4f9b并一次将其转换为十进制2位数。例如,从上面拿4e将其转换为十进制,取40,依此类推

我目前正在使用此函数获取十进制数列表并将其转换为十六进制数,产生上述十六进制数

def decimal_to_hex(ilist):      
    return ''.join('{:02x}'.format(i) for i in ilist)

有什么类似的简短方法我能做到。

2 个答案:

答案 0 :(得分:0)

In [13]: s = '4e40b844800742db4f9b'

In [14]: [int(s[n:n+2], 16) for n in xrange(0, len(s), 2)]
Out[14]: [78, 64, 184, 68, 128, 7, 66, 219, 79, 155]

答案 1 :(得分:0)

如果你喜欢正则表达式,你可以滥用findall制作组

>>> import re
>>> s = '4e40b844800742db4f9b'
>>> [int(n, 16) for n in re.findall('..', s)]
[78, 64, 184, 68, 128, 7, 66, 219, 79, 155]

会更贵,但我觉得它看起来更好。