![](/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.