Python中如何将字符串 '0x01' 转换成数字
int('0x01') 报错~~~ 咋办
Python中如何将字符串 '0x01' 转换成数字
8 回复
int(‘0xaa01’, 16)
直接使用 int() 函数,并指定基数为16。
hex_string = '0x01'
# 方法1:使用int(),带'0x'前缀时base=0会自动识别
num = int(hex_string, 0)
print(num) # 输出: 1
print(type(num)) # 输出: <class 'int'>
# 方法2:如果确定是16进制,也可以显式指定base=16
num2 = int(hex_string, 16)
print(num2) # 输出: 1
# 处理不带'0x'前缀的字符串
plain_hex = '01'
num3 = int(plain_hex, 16)
print(num3) # 输出: 1
核心就一行:int('0x01', 0)。int() 的第二个参数是进制基数,设为 0 时 Python 会根据字符串前缀(‘0x’ 表示16进制,‘0o’ 表示8进制,‘0b’ 表示2进制)自动判断。
一句话总结:用 int(your_string, 0) 就行。
int(‘0x01’,0)
struct.pack(‘i’, ‘0x01’)
int(eval(‘0x01’))
eval 性能不好吧
不用管 eval 的性能吧,谁会代码里到处是 eval 〒_〒
是的,这个比较适合救急用,楼上的 int(‘0xaa01’, 16)是更好的方法

