我有一个脚本调用一个函数,该函数采用十六进制数字作为参数。该参数需要 0x 前缀。数据源是数据库表,存储为字符串,因此返回'0x77'。我正在寻找一种从数据库中获取字符串并将其用作带有 0x 前缀的十六进制形式的参数的方法。
这有效:
addr = 0x77
value = class.function(addr)
数据库条目必须是字符串,因为大多数其他记录在此列中没有十六进制值,但可以更改这些值以使其更容易,因此它可以是“119”,而不是“0x77”。
Your class.function
期望一个integer可以用十进制或十六进制表示literal,因此这两个调用是完全等价的:
class.function(0x77)
class.function(119) # 0x77 == 119
Even print(0x77)
将会呈现119
(因为十进制是默认表示形式)。
因此,我们应该讨论将字符串表示形式转换为integer。该字符串可以是十六进制表示,例如“0x77”,然后使用基本参数解析它:
>>> int('0x77', 16)
119
或十进制一,然后将其解析为int('119')
.
不过,每当处理整数时存储整数会更好。
编辑:正如@gnibbler建议的,你可以解析为int(x, 0)
,它处理两种格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)