首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将字符串转换为Base-10表示形式?

如何将字符串转换为Base-10表示形式?
EN

Stack Overflow用户
提问于 2012-05-23 17:09:51
回答 4查看 4K关注 0票数 5

有没有什么python模块可以帮我把字符串转换成64位整数?(此字符串的最大长度为8个字符,因此它应该适合于一个长字符串)。

我希望避免编写自己的方法。

示例:

代码语言:javascript
复制
Input String   Hex          result (Base-10 Integer)
'Y'            59           89
'YZ'           59 5a        22874
...
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-23 17:17:31

这是struct的工作

代码语言:javascript
复制
>>> s = 'YZ'
>>> struct.unpack('>Q', '\x00' * (8 - len(s)) + s)
(22874,)

或者更棘手一点:

代码语言:javascript
复制
>>> int(s.encode('hex'), 16)
22874
票数 8
EN

Stack Overflow用户

发布于 2012-05-23 17:13:56

我不认为有一个内置的方法可以做到这一点,但它很容易炮制出来:

代码语言:javascript
复制
>>> int("".join([hex(ord(x))[2:] for x in "YZ"]), 16)
22874

这是通过基数16实现的,当然可以进行优化。我会把它留作“练习”。

票数 4
EN

Stack Overflow用户

发布于 2012-05-23 17:17:18

另一种方式:

代码语言:javascript
复制
sum(ord(c) << i*8 for i, c in enumerate(mystr))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10716796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档