![](/img/trans.png)
[英]Why does bit-wise shift left return different results in Python and Java?
[英]Is there a way making python produce the same result bit-wise shift left with java?
我必须将一些函数从 Java 代码转移到 Python。 但左移返回不同的结果。 并且 Python 在 Java 中缺少 >>> 运算符
如何使它们相同? 蟒蛇:6116937115306182825 << 11 = 12527487212147062425600
java:6116937115306182825 << 11 = 2147986098276878336
java的位数有限(64)而python没有......所以你需要强制它使用正确的位数(64)
(6116937115306182825 << 11) & 0xFFFFFFFFFFFFFFFF
当您需要超过long
大小的整数值时,即大于 9_223_372_036_854_775_807 的值,请使用BigInteger
:
System.out.println(new BigInteger("6116937115306182825").shiftLeft(11));
输出
12527487212147062425600
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.