1
最近我試圖實現大數量的Karatsuba乘法。然後我嘗試將我的實現與Java BigInteger實現進行比較。我無法跟隨這行代碼:Java中的Karatsuba乘法實現BigDecimal
// result = p1 * 2^(32*2*half) + (p3 - p1 - p2) * 2^(32*half) + p2
BigInteger result = p1.shiftLeft(32*half).add(p3.subtract(p1).subtract(p2)).shiftLeft(32*half).add(p2);
據karatsuba算法,result = (p1 * 10^(2*half)) + ((p3 -p1 - p2) * 10^(half)) + (p2)
由於實現使用INT [],我相信32是Java整數位的數量。
但我不明白將位移到左邊的部分。你能幫我理解這裏發生了什麼嗎?
@djxak你能告訴我應該看哪篇文章的哪一部分?看起來不相關。 –
@djxak你說的是絕對的,完整的和完全的垃圾。這是一個關於'BigDecimal'中Karatsuba乘法的Java問題。它與Javascipt或全局錯誤處理完全沒有任何關係。 – EJP
是不是上面的評論回答這個問題?左移是乘以2. – djxak