簡體   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