繁体   English   中英

有没有办法让python产生与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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM