如何在python中将字符串转换为唯一的十进制数?

时间:2014-07-24 10:55:15

标签: python string

我需要转换一个字符串,例如" Hello world"成一个唯一的十进制数。唯一的意思是,即使字符串的一小部分被改变,数字也应该是不同的。 此外,这个过程必须是可逆的。这是我需要的过程:

a = "Hello world"

b = someFunction(a)
print(b) --> 4324234

c = inverseOfSomeFunction(b)
print(c) --> "Hello world"

我查看了python文档,但是我找不到答案..

1 个答案:

答案 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位移位。