【发布时间】:2017-09-08 19:10:18
【问题描述】:
我试图在不使用 int 构造函数的情况下将表示十六进制数字的字符串转换为 python 中的 int。
例如,如果给我
hexstring = "802"
我怎么会这样
output = 2050
不做
int("802",16)
我该怎么做?
【问题讨论】:
-
你为什么需要避免
int? -
@chepner:常见的作业问题,有一个约束以防止琐碎的答案。
-
你可以自己做
int()的工作,即将“802”解析成(2 * 1) + (0 * 16) + (8 * 256)的组成部分。 -
for i in range(0,<big number>): if hex(i)[2:] == hexstring: return i-- 开个玩笑,别这样。 -
一种方法是使用此列表的值:
weird_numbers = [ord(x) for x in hexdigits],可能与ord('0')和ord('a')(和/或ord('A'))的值有关...
标签: python string hex string-parsing