Python十六进制字符串操作:需要保留前导零

时间:2014-10-15 22:04:24

标签: python string hex

我有两个号码:

a =" 00000108"

b =" FFFFF9FF"

我想计算两个字符串中十六进制值的按位AND。我想要的结果是一个字符串: " 00000108"

以下是我的想法:

def fixedAND(a, b):
    '''
    The a and b are both strings
    '''
    return ''.join([hex(ord(i) & ord(j))[2:] for i,j in zip(a.decode('hex'), b.decode('hex'))])

此函数返回" 0018"。它抑制两个十六进制数字对中的每一个的前导零。

1 个答案:

答案 0 :(得分:1)

最好将字符串转换为整数,执行AND,然后以您选择的格式打印结果。例如

>>> a = "00000108"
>>> b = "FFFFF9FF"
>>> format(int(a, 16) & int(b, 16), '08x')
'00000108'