Javaで2つの長い値のモジュロ(%)を見つけるにはどうすればよいですか?私のコードは「整数が大きすぎます」と言った後、変更しようとしている数値が続きます。長くキャストしてみましたが、うまくいきませんでした。それをBigIntegerに変換し、剰余法を使用する必要がありますか?ありがとう。
35601 次
3 に答える
22
%
オペレーターは長い間働きます。L
のように、数値リテラルの最後に固執するのを忘れたようです123456789L
。あなたのコードを見ることができますか?
于 2011-04-20T23:04:16.990 に答える
6
整数は2147483 647までしか持てません。それより大きくしたい場合、たとえば30億の場合は、長い整数を指定する必要があります。
class Descartes {
public static void main(String[] args) {
long orig = Long.MAX_VALUE;
long mod = orig % 3000000000; // ERROR 3000000000 too big
long mod = orig % 3000000000L; // no error, specified as a long with the L
}
}
大文字または小文字のLを使用できますが、小文字は数字の1と非常によく似ているため、大文字を使用することをお勧めします。
于 2011-04-20T23:08:53.687 に答える
0
%と同様に機能するremainder()メソッドを持つBigIntegerクラスを使用して作業することもできます。
于 2011-04-20T23:11:23.080 に答える