我有一个java脚本函数,我试图在python 2中复制它,并且java脚本正在执行某种精度错误环绕(或其他操作),我无法理解它。这些数字很大,但示例如下:
在 JavaScript 中:
a = 3141592751
b = 1234567890
result = (a*31) ^ b
window.alert(result)
此处,结果 = -447877661。我假设这是因为存储大数的位限制以及相关的大负数的环绕。
使用Python 2:
a = 3141592751
b = 1234567890
result = (a*31) ^ b
print result
此处,结果 = 98336370147,这在数学上是正确的。
如何使用 python 复制 javascript 代码的功能?什么是环绕点?谢谢!
最佳答案
JavaScript 中变量的限制是 -
+/- 9007199254740991
i.e., 2^53 -1
还要考虑的一件事是,如果您正在处理按位运算符和移位运算符来完成工作,它们会在 32 位整数上运行,因此在这种情况下,最大安全整数是 -
2^31-1, or 2147483647
希望对你有帮助!
更多引用 - MDN和 StackOverflow
因此,您可能必须使用此值来包装您的 python 代码。
Note : ^ symbol above represents power of.
关于Javascript 到 Python 数学转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356179/