web-dev-qa-db-ja.com

Javaのlongsのモジュロ演算子とは何ですか?

Javaで2つの長い値のモジュロ(%)を見つけるにはどうすればよいですか?私のコードは「整数が大きすぎます」と言った後、変更しようとしている数値が続きます。長くキャストしてみましたが、うまくいきませんでした。それをBigIntegerに変換し、剰余メソッドを使用する必要がありますか?ありがとう。

13
Descartes

%演算子は長い間機能します。 123456789Lのように、数値リテラルの最後にLを付けるのを忘れたようです。あなたのコードを見ることができますか?

19
Daniel Lubarov

2 147 483 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
    }
}

大文字OR小文字のLを使用できますが、小文字は数字の1と非常によく似ているため、大文字を使用することをお勧めします。

5
corsiKa

%と同様に機能するremainder()メソッドを持つBigIntegerクラスを操作してみることもできます。

0
elekwent