val1 = hex(100)
val2 = hex(50)
val3 = hex(int(val1, 16) - int(val2, 16))
hex_str = str(val1) + str(val2) + str(val3)
print(hex_str)
在上面的例子中,我的目标是得到一个类似于这样的字符串:
643232
。但是当前结果中,字符串变成了
0x640x320x32
。在Python中,有没有一种方法可以从十六进制字符串的开头删除
0x
?还是说我需要使用像
re.sub()
这样的正则表达式来删除它?编辑:我还需要确保我得到的始终是两个字符。例如,如果我正在查找5的十六进制值,我将得到
05
。
val1 = f'{100:x}'
- Robᵩ"{:x}{:x}{:x}".format(val1, val2, val3)
。 - spectrasx
更改为02x
,如此答案中所述,转换为Python十六进制。 因此,format(3,'02x')
将给出'03'
。 "02
部分告诉format()
至少使用2个数字,并使用零填充到长度,x
表示小写十六进制。" 对于您的最后一个操作,您的格式将是"{:02x}{:02x}{:02x}" .format(100, 50, 50)
。 - Steven Rumbalski