这是由语言定义的吗?是否有定义的最大值?在不同的浏览器中是不同的?
我试图在Python中复制一个简单的按位Javascript操作.
[使用Javascript]
> 0xA867Df55
2825379669
> 0xA867Df55 ^ 0
-1469587627
Run Code Online (Sandbox Code Playgroud)
[蟒蛇]
>>> 0xA867DF55
2825379669L
>>> 0xA867DF55 ^ 0
2825379669L
Run Code Online (Sandbox Code Playgroud)
阅读以下内容:
听起来像这里的问题是Javascript中的0xA867Df55(2825379669)大于最大的有符号32位int(2147483647),这导致了意外的Javascript结果.
然后邮件继续建议:
"如果出于某种原因你想在Ruby中重现它,你会用1FFFFFFFF和你的数字进行比较,这样你只能在最低有效32位上运行,然后用0运算它(它什么都不做,但会给你相同的结果) ".
但如果我试试这个:
>>> (0xA867DF55 & 0x1FFFFFFF) ^ 0
141025109L
Run Code Online (Sandbox Code Playgroud)
我只需要在Python中复制Javascript行为.任何人都可以建议适当的按位操作?
谢谢.