本帖最后由 Kapix 于 2023-7-23 01:35 编辑
为啥还是丢失精度了?
下面是Python代码
[Python] 纯文本查看 复制代码 def MyHash():
e = "@cTaR0MKYo"
t = 5381
n = 0
o = len(e)
while n < o:
t += (t << 5) + ord(e[n])
n += 1
return t & 2147483647
我在易语言里面就是
[] 纯文本查看 复制代码
.版本 2
.支持库 spec
.子程序 MyHash
.局部变量 e, 文本型
.局部变量 t, 长整数型
.局部变量 n, 长整数型
.局部变量 o, 长整数型
e = “@cTaR0MKYo”
t = 5381
n = 0
o = 取文本长度 (e)
.判断循环首 (n < o)
t = Long_Add (t, Long_Add (Long_Shl (t, 5), 取代码 (e, n)))
n = n + 1
.判断循环尾 ()
调试输出 (Long_And (t, 2147483647))
然后Python输出的是934533567,而易语言输出的是1552368624
|