我搜索了有关此主题的一些问题和答案: 如何在python中将十六进制字符串转换为十六进制数字,例如:
hex_str = a1b2c3d4
result = int(hex_str,16)
hex_num = hex(result)
type(hex_num) #i got the 'str' type
正如您在上面看到的,我认为hex_num shoudle是0xa1b2c3d4,我可以将其与0xa1b2c3d4进行比较,并会打印匹配的字符串
if hex_num == 0xa1b2c3d4:
print 'matched'
但是,代码无法在'print'语句行中显示。
答案 0 :(得分:3)
hex()返回一个字符串
>>> hex(123)
'0x7b'
>>> type(hex(123))
<class 'str'>
Python将十六进制数字视为int
>>> 0xabc123
11256099
>>> type(0xabc123)
<class 'int'>
>>> 0xabc123 + 1
11256100
如果您希望hex_num变量与数字0xa1b2c3d4匹配,则无需使用hex()。
hex_str = 'a1b2c3d4' # I write in quotes, otherwise get "not defined" error
result = int(hex_str, 16)
if result == 0xa1b2c3d4:
print('matched')
或者,如果要使用十六进制表示形式,则需要将其与字符串进行比较,请在if语句中使用引号。
hex_str = 'a1b2c3d4'
result = int(hex_str, 16)
hex_num = hex(result)
if hex_num == '0xa1b2c3d4':
print('matched')