我需要将十六进制数字转换为整数。
我有n=2
,然后使用newN=hex(n)
,这给了我值0x32
。现在,我尝试使用int(newN,16)
将其重新转换为整数值,但这无济于事,只给了我一个空字符串。
我也尝试过chr(int(newN,16))
,但结果相同。
这是测试代码
n = '2'
newN = hex(n)
print(str(newN))
oldN = chr(int(newN, 16))
print(str(oldN))
我得到以下信息:
0x32
答案 0 :(得分:1)
首先,您的问题是不正确的n
变量的类型为string(长度为1),而不是整数。 (因为它对应于十六进制值50,相当于ASCII中的“ 2”)
代码:-
n = '2'
# Ord(n) gives us the Unicode code point of the given character ('2' = 50)
# hex() produces its hexadecimal equivalent (50 = "0x32")
n_hex = hex(ord(n))
# 0x32
print(n_hex)
# Ord(n) gives us the Unicode code point of the given character ('2' = 50)
n_hex_int = ord(n)
# 50
print(n_hex_int)
输出:-
0x32
50