Edy*_*elf 13 python hex converter
我有一个脚本调用一个函数,该函数采用十六进制数作为参数.参数需要0x前缀.数据源是一个数据库表,存储为字符串,因此返回"0x77".我正在寻找一种从数据库中获取字符串的方法,并将其用作带有0x前缀的十六进制形式的参数.
这有效:
addr = 0x77
value = class.function(addr)
Run Code Online (Sandbox Code Playgroud)
数据库条目必须是一个字符串,因为大多数其他记录在此列中没有十六进制值,但可以更改这些值以使其更容易,因此代替"0x77",它可能是"119".
ber*_*eal 12
你class.function期望一个整数,可以用十进制或十六进制文字表示,这样这两个调用是完全等价的:
class.function(0x77)
class.function(119) # 0x77 == 119
Run Code Online (Sandbox Code Playgroud)
甚至print(0x77)会显示119(因为十进制是默认表示).
所以,我们应该讨论将字符串表示转换为整数.字符串可以是十六进制表示,如'0x77',然后使用base参数解析它:
>>> int('0x77', 16)
119
Run Code Online (Sandbox Code Playgroud)
或十进制,然后解析为int('119').
但是,只要处理整数,存储整数就更好了.
编辑:正如@gnibbler建议的那样,你可以解析as int(x, 0),它处理两种格式.
>>> hex(119)
'0x77'
#or:
>>> hex(int("119"))
'0x77'
Run Code Online (Sandbox Code Playgroud)
这应该适合你.
您还可以获取字符的十六进制表示:
>>> hex(ord("a"))
'0x61'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76267 次 |
| 最近记录: |