long < - > str二进制转换

6 python string bignum

是否有任何lib将非常长的数字转换为仅仅复制数据的字符串?

这些单行太慢了:

def xlong(s):
    return sum([ord(c) << e*8 for e,c in enumerate(s)])

def xstr(x):
    return chr(x&255) + xstr(x >> 8) if x else ''

print xlong('abcd'*1024) % 666
print xstr(13**666)
Run Code Online (Sandbox Code Playgroud)

iro*_*ggy 4

你想要结构模块。

packed = struct.pack('l', 123456)
assert struct.unpack('l', packed)[0] == 123456
Run Code Online (Sandbox Code Playgroud)