0

32ビットまたは64ビットプロセッサで許可されている数値よりも大きい数値の整数演算をどのように表すことができますか。私は小さなJava計算機を作成しようとしていますが、入力は数値の文字列である必要があり、それを2進数または10進数の表現に変換する必要があります。次に、変換する必要のある別の数値の文字列に加算、乗算、除算、または減算する必要があります。明らかに、PythonやRubyのような言語は、「9999999999999999999」+「999999999999999999」のようなものを処理できます。しかし、Javaの観点からそうする方法についてはよくわかりません。

文字列が実際に数値の文字列であるかどうかを解析できるコンストラクターを使用して、新しいクラスを定義することから始めました。それらを2進数または10進数に変換する方法と、どのようにできるかについてですが、このクラスに加算、減算、乗算、乗算などのメソッドを追加すると、どちらが将来的に有益になるかがわかりません。分ける。

大小を問わず、あらゆる概念的なアイデアが役立ちます。前もって感謝します!

4

2 に答える 2

3

BigIntegerクラスとBigDecimalクラスを見てください。どちらも任意精度の実装です。そのため、数値リテラルよりも明らかにはるかに大きい(そして一定ではない)オーバーヘッドがあります。名前が示すように、BigIntegerは整数にのみ使用されますが、BigDecimal任意の有理10進数を格納できます。

さらに、Javaは演算子のオーバーロードをサポートしていないため、Javaの数学演算子を使用できないため、操作が面倒な場合があります。代わりに、クラスのメソッドを使用してください。

于 2013-03-17T20:08:21.653 に答える
1

BigIntegerクラスを使用してみてください。多数を処理するように設計されています。

于 2013-03-17T20:10:17.987 に答える