2024-04-25 01:20:40 发布
网友
我需要转换一个字符串,例如“Hello world”转换成一个唯一的十进制数。我所说的“唯一”是指即使字符串的一小部分被更改,数字也应该不同。 此外,这个过程必须是可逆的。这是我需要的流程:
a = "Hello world" b = someFunction(a) print(b) --> 4324234 c = inverseOfSomeFunction(b) print(c) --> "Hello world"
我查阅了python文档,但是没有找到答案。。在
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之间。
ord()
<<(i*8)将下一个字母移动8位。它与*i*265相同,只是更切中要害。
<<(i*8)
*i*265
解码函数总是取最低的8位(i%0xff)并对其进行解码。然后它将剩余的数字8位下移。
其工作原理如下:
ord()
接受一个字符的整数表示。在0到255之间。<<(i*8)
将下一个字母移动8位。它与*i*265
相同,只是更切中要害。解码函数总是取最低的8位(i%0xff)并对其进行解码。然后它将剩余的数字8位下移。
相关问题 更多 >
编程相关推荐