我有一个脚本,该脚本调用一个参数,该函数采用十六进制数。参数必须为0x前缀。数据源是数据库表,并存储为字符串,因此返回“ 0x77”。我正在寻找一种从数据库中获取字符串并将其用作带有0x前缀的十六进制形式的参数的方法。
这有效:
addr = 0x77
value = class.function(addr)
数据库条目必须是一个字符串,因为大多数其他记录在此列中都没有十六进制值,但是可以更改这些值以使其更容易,因此它可以不是“ 0x77”,而可以是“ 119”。
您的class.function
期望一个整数,其可以通过一个十进制或十六进制来表示文字,从而使这两个调用是完全等效的:
class.function(0x77)
class.function(119) # 0x77 == 119
偶数print(0x77)
将显示119
(因为十进制是默认表示)。
因此,我们宁愿谈论将字符串表示形式转换为integer。该字符串可以是十六进制表示形式,例如“ 0x77”,然后使用基本参数对其进行解析:
>>> int('0x77', 16)
119
或十进制数,然后将其解析为int('119')
。
尽管如此,在您处理整数时最好存储整数。
编辑:如@gnibbler建议,您可以解析为int(x, 0)
,处理两种格式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句