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



我有两个数字:

a="00000108"

b="FFFFF 9FF"

我想计算这两个字符串中十六进制值的逐位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"。它为两个十六进制数字对中的每一个抑制前导零。

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

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

最新更新