1
最近、大きな数のKaratsuba乗算を実装しようとしていました。次に、実装をJava BigIntegerの実装と比較しようとしました。実装intを使用するので、[]、I 32は、Java整数のビット数であると考えて、カラツバ法によればresult = (p1 * 10^(2*half)) + ((p3 -p1 - p2) * 10^(half)) + (p2)
Java BigDecimalでのKaratsuba乗算の実装
を
// 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);
:私はこのコード行をたどることができませんでした。
しかし、ビットを左にシフトする部分は分かりませんでした。あなたは誰かがここで何が起こっているのか理解するのを助けることができますか
@djxakその投稿のどの部分を見るべきか教えていただけますか?関連性のないように見えます。 –
@djxakあなたは絶対的で完全な、まったくのゴミを話しています。これは、BigDecimalでのKaratsubaの乗算に関するJavaの質問です。 Javasciptまたはグローバルエラーハンドリングのどちらともまったく関係がありません。 – EJP
この行の上のコメントではありませんか?左シフトは、2倍に似ています。 – djxak