整数到唯一字符串

时间:2010-11-05 04:36:22

标签: python ascii

可能有其他人提出了类似的问题,但我没有花太多时间来搜索这个问题,所以如果有人已经回答了这个问题,请指点我。

我正在尝试取一个整数(或长整数)并以非常具体的方式将其转换为字符串。

目标主要是将整数拆分为8位段,然后取出每个段并获取该块的相应ASCII字符,然后将这些块粘合在一起。

这很容易实现,但我不确定我是否会以最有效的方式实现它。

>>> def stringify(integer):
        output = ""
        part = integer & 255
        while integer != 0:
                output += chr(part)
                integer = integer >> 8
        return output
>>> stringify(10)
'\n'
>>> stringify(10 << 8 | 10)
'\n\n'
>>> stringify(32)
' '

有更有效的方法吗? 这是内置到Python吗?

修改

另外,由于这将在紧密循环中按顺序运行,是否有某种方法可以简化它的使用?

>>> for n in xrange(1000):  ## EXAMPLE!
        print stringify(n)
...

1 个答案:

答案 0 :(得分:3)

struct可以轻松地为最大64位的整数执行此操作。任何较大的都需要你先编号。

>>> struct.pack('>Q', 12345678901234567890)
'\xabT\xa9\x8c\xeb\x1f\n\xd2'