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)是更好的方法

回到顶部