我需要转换一个字符串,例如" Hello world"成一个唯一的十进制数。唯一的意思是,即使字符串的一小部分被改变,数字也应该是不同的。 此外,这个过程必须是可逆的。这是我需要的过程:
a = "Hello world"
b = someFunction(a)
print(b) --> 4324234
c = inverseOfSomeFunction(b)
print(c) --> "Hello world"
我查看了python文档,但是我找不到答案..
答案 0 :(得分:1)
a="Hello WORLD"
def toBigInt(s):
ret=0
for i,j in enumerate(s):
ret+= ord(j)<<(i*8)
return ret
def fromBigInt(i):
s=""
while i>0:
s+=chr(i&0xff)
i=i>>8
return s
i = toBigInt(a)
print i
print fromBigInt(i)
这适用于以下内容:ord()
获取一个字符的整数表示。多数民众赞成在0到255之间。
<<(i*8)
将下一个字母移位8位。它与*i*265
相同,更重要。
解码功能始终采用最低8位(i%0xff)并对其进行解码。然后它将剩余的8位移位。