在python中将十六进制字符串转换为十六进制数字

时间:2018-12-25 09:28:28

标签: python

我搜索了有关此主题的一些问题和答案: 如何在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'语句行中显示。

1 个答案:

答案 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')