可能有其他人提出了类似的问题,但我没有花太多时间来搜索这个问题,所以如果有人已经回答了这个问题,请指点我。
我正在尝试取一个整数(或长整数)并以非常具体的方式将其转换为字符串。
目标主要是将整数拆分为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)
...
答案 0 :(得分:3)
struct
可以轻松地为最大64位的整数执行此操作。任何较大的都需要你先编号。
>>> struct.pack('>Q', 12345678901234567890)
'\xabT\xa9\x8c\xeb\x1f\n\xd2'