猿问

ValueError: int() 的无效文字,基数为 16

我在从字符串转换为整数时遇到问题。我有返回变量的函数a = 00007fff`90492630。此变量具有 Unicode 类型。这是我将用来通过 pykd(windbg 的插件)安装断点的函数的地址。
在下一个函数中,我想将此变量转换为int,使用int(a,16). 但我有这个错误:

ValueError: int() 基数为 16 的无效文字:'00007fff`90492630'

谢谢你的帮助!


慕斯王
浏览 79回答 3
3回答

智慧大石

如果您需要删除代码中的勾号,您可以执行以下操作:a = '00007fff`90492630'b = int(a.translate(str.maketrans({'`':""})), 16)print(b)

哆啦的时光机

尝试使用 pykd.expr 它将任何 windbg 常量/符号/表达式转换为 64 位长值如果要获取函数的偏移量,请使用 pykd.getOffset(func_name) 而不是 dbgCommand('x ' + func_name )

喵喔喔

你的字符串中有一个单引号\tick。删除它时,您会得到以下输出:>>> int("00007fff90492630", 16)140735614101040
随时随地看视频慕课网APP

相关分类

Python
我要回答