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

2024-04-25 01:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

a = "Hello world"

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

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

我查阅了python文档,但是没有找到答案。。在


Tags: 字符串答案文档helloworld过程数字流程
1条回答
网友
1楼 · 发布于 2024-04-25 01:20:40
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位下移。

相关问题 更多 >