モジュール java.base
パッケージ java.math

クラスBigInteger

  • すべての実装されたインタフェース:
    Serializable, Comparable<BigInteger>

    public class BigInteger
    extends Number
    implements Comparable<BigInteger>
    変更が不可能な、任意精度の整数です。 すべての演算は、BigIntegerが(Javaのプリミティブ整数型のような) 2値補数表記法で表されたかのように動作します。 BigIntegerは、Javaのすべてのプリミティブ整数演算子と、java.lang.Mathの関連するすべてのメソッドに同等のものを提供します。 また、BigIntegerは、モジュラ算術、GCD計算、素数度テスト、素数生成、ビット操作、その他のいくつかの操作に対する演算も提供します。

    算術演算のセマンティクスは、「Java™言語仕様」に定義されているJava整数演算子の意味に正確に似ています。 たとえば、ゼロ除算はArithmeticExceptionをスローし、正の数による負の数の除算は負(または0)の剰余を出します。

    シフト演算のセマンティックスは、負のシフト移動量を可能にするためJavaのシフト演算子を拡張しています。 負のシフト移動量を持つ右シフトは左シフトとなります。逆の場合も同じです。 この操作では、無署名の右シフト演算子(>>>)は省略されていますが、概念的には固定の仮想符号ビットの数が無限の表現ではなく、概念的には固定のサイズではありません。

    ビット単位の論理演算のセマンティックスは、Javaのビット整数演算子のセマンティックスを正確に模倣しています。 2項演算子(andorxor)は、演算前に2つのオペランドの短い方に対して暗黙的に符号拡張を行います。

    比較演算は符号付き整数の比較を行います。これは、Javaの関連する演算子および同等の演算子により行われるものと同じです。

    モジュラ算術演算は、剰余計算、べき乗、および乗法逆数計算のために提供されています。 これらのメソッドは、常に0(modulus - 1)の間の負でない結果を返します。

    ビット演算は、オペランドの2の補数表現のシングル・ビットに使用します。 必要に応じて、オペランドの符号は指示するビットを持つように拡張されます。 単一ビット操作では、操作対象のBigIntegerとは異なる符号を使用してBigIntegerを生成することはできません。このクラスで提供される任意の大規模な抽象化によって、各BigIntegerの前にある"仮想符号ビット"が無制限に存在することが保証されます。

    説明をわかりやすく簡潔にするために、BigIntegerメソッドの説明では全体を通して擬似コードを使用します。 擬似コード式(i+j)は、「値がBigInteger iの値とBigInteger jの値の和であるBigInteger」を示します。 擬似コード式(i == j)は、「BigInteger iがBigInteger jと同じ値を表す場合にだけtrueであること」を示します。 ほかの擬似コード式も同じように解釈されます。

    このクラスのメソッドおよびコンストラクタはすべて、入力パラメータに対してnullオブジェクト参照が渡されるとNullPointerExceptionをスローします。 BigIntegerは、-2Integer.MAX_VALUE (これを含まない)から+2Integer.MAX_VALUE (これを含まない)までの範囲の値をサポートする必要があり、この範囲外の値をサポートすることもできます。 BigIntegerコンストラクタまたはメソッドがサポートされている範囲外の値を生成すると、ArithmeticExceptionがスローされます。 確率的素数の値の範囲は限られ、BigIntegerでサポートされる正の範囲全体より小さい場合があります。 範囲は少なくとも1から2500000000でなければなりません。

    実装上の注意:
    リファレンス実装では、結果が -2Integer.MAX_VALUE (exclusive)から+2Integer.MAX_VALUE (exclusive)までの範囲外である場合、BigIntegerコンストラクタと操作はArithmeticExceptionをスローします。
    導入されたバージョン:
    1.1
    関連項目:
    BigDecimal直列化された形式
    Java™言語仕様:
    4.2.2整数演算
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static BigInteger ONE
      BigInteger定数1です。
      static BigInteger TEN
      BigInteger定数10です。
      static BigInteger TWO
      BigInteger定数2です。
      static BigInteger ZERO
      BigInteger定数0です。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      BigInteger​(byte[] val)
      BigIntegerの2の補数2進表現を含むバイト配列をBigIntegerに変換します。
      BigInteger​(byte[] val, int off, int len)
      BigIntegerの2の2進数表現を含むバイト配列をBigIntegerに変換します。
      BigInteger​(int signum, byte[] magnitude)
      BigIntegerの符号絶対値表現をBigIntegerに変換します。
      BigInteger​(int signum, byte[] magnitude, int off, int len)
      BigIntegerの符号絶対値表現をBigIntegerに変換します。
      BigInteger​(int bitLength, int certainty, Random rnd)
      ランダムに生成された(おそらく素数である)正のBigIntegerを、指定したビット長で構築します。
      BigInteger​(int numBits, Random rnd)
      0 - (2numBits - 1)の範囲に一様に分散されている、ランダムに生成されたBigIntegerを構築します。
      BigInteger​(String val)
      BigIntegerの10進String表現をBigIntegerに変換します。
      BigInteger​(String val, int radix)
      指定された基数内のBigIntegerのString表現をBigIntegerに変換します。
    • メソッドのサマリー

      すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      BigInteger abs()
      値がこのBigIntegerの絶対値であるBigIntegerを返します。
      BigInteger add​(BigInteger val)
      値が(this+val)であるBigIntegerを返します。
      BigInteger and​(BigInteger val)
      値が(this & val)であるBigIntegerを返します。
      BigInteger andNot​(BigInteger val)
      値が(this & ~val)であるBigIntegerを返します。
      int bitCount()
      このBigIntegerの2の補数表現内の、符号ビットと異なるビットの数を返します。
      int bitLength()
      このBigIntegerの最小の2の補数表現内のビット数を返します。ただし、符号ビットを除きます
      byte byteValueExact()
      このBigIntegerbyteに変換し、失われた情報がないかどうかを確認します。
      BigInteger clearBit​(int n)
      値がこのBigIntegerに等しいBigIntegerを、指定されたビットをクリアして返します。
      int compareTo​(BigInteger val)
      このBigIntegerを指定されたBigIntegerと比較します。
      BigInteger divide​(BigInteger val)
      値が(this /val)であるBigIntegerを返します。
      BigInteger[] divideAndRemainder​(BigInteger val)
      (this /val)そして(this % val)と続く、2つのBigIntegerの配列を返します。
      double doubleValue()
      このBigIntegerをdoubleに変換します。
      boolean equals​(Object x)
      このBigIntegerと指定されたObjectが等しいかどうかを比較します。
      BigInteger flipBit​(int n)
      値がこのBigIntegerに等しいBigIntegerを、指定されたビットを反転させて返します。
      float floatValue()
      このBigIntegerをfloatに変換します。
      BigInteger gcd​(BigInteger val)
      値がabs(this)abs(val)の最大公約数であるBigIntegerを返します。
      int getLowestSetBit()
      このBigIntegerのもっとも右側(1番低い位)の1ビットのインデックス(もっとも右側の1ビットの右方向の0ビットの数)を返します。
      int hashCode()
      このBigIntegerのハッシュ・コードを返します。
      int intValue()
      このBigIntegerをintに変換します。
      int intValueExact()
      このBigIntegerintに変換し、失われた情報がないかどうかを確認します。
      boolean isProbablePrime​(int certainty)
      このBigIntegerが素数である可能性が高い場合はtrue、必ず合成数である場合はfalseを返します。
      long longValue()
      このBigIntegerをlongに変換します。
      long longValueExact()
      このBigIntegerlongに変換し、失われた情報がないかどうかを確認します。
      BigInteger max​(BigInteger val)
      このBigIntegerとvalの最大値を返します。
      BigInteger min​(BigInteger val)
      このBigIntegerとvalの最小値を返します。
      BigInteger mod​(BigInteger m)
      値が(this mod m)であるBigIntegerを返します。
      BigInteger modInverse​(BigInteger m)
      値が(this-1 mod m)であるBigIntegerを返します。
      BigInteger modPow​(BigInteger exponent, BigInteger m)
      値が(thisexponent mod m)のBigIntegerを返します。
      BigInteger multiply​(BigInteger val)
      値が(this * val)であるBigIntegerを返します。
      BigInteger negate()
      値が(-this)であるBigIntegerを返します。
      BigInteger nextProbablePrime()
      このBigIntegerより大きい最初の整数(おそらく素数)を返します。
      BigInteger not()
      値が(~this)であるBigIntegerを返します。
      BigInteger or​(BigInteger val)
      値が(this|val)であるBigIntegerを返します。
      BigInteger pow​(int exponent)
      値が(thisexponent)のBigIntegerを返します。
      static BigInteger probablePrime​(int bitLength, Random rnd)
      指定されたビット長で正のBigInteger (おそらく素数)を返します。
      BigInteger remainder​(BigInteger val)
      値が(this % val)であるBigIntegerを返します。
      BigInteger setBit​(int n)
      値がこのBigIntegerに等しいBigIntegerを、指定されたビットを設定して返します。
      BigInteger shiftLeft​(int n)
      値が(this << n)であるBigIntegerを返します。
      BigInteger shiftRight​(int n)
      値が(this>> n)であるBigIntegerを返します。
      short shortValueExact()
      このBigIntegershortに変換して、失われた情報がないかどうかを確認します。
      int signum()
      このBigIntegerの符号要素を返します。
      BigInteger sqrt()
      このBigIntegerの整数平方根を返します。
      BigInteger[] sqrtAndRemainder()
      thisの整数平方根sとその残りのthis - s*sをそれぞれ含む2つのBigIntegerの配列を返します。
      BigInteger subtract​(BigInteger val)
      値が(this - val)であるBigIntegerを返します。
      boolean testBit​(int n)
      指定されたビットが設定されている場合にだけtrueを返します。
      byte[] toByteArray()
      このBigIntegerの2の補数表現を含むバイト配列を返します。
      String toString()
      このBigIntegerの10進String表現を返します。
      String toString​(int radix)
      指定された基数内のこのBigIntegerのString表現を返します。
      static BigInteger valueOf​(long val)
      値が指定されたlongの値と等しいBigIntegerを返します。
      BigInteger xor​(BigInteger val)
      値が(this^val)であるBigIntegerを返します。
    • フィールドの詳細

      • ZERO

        public static final BigInteger ZERO
        BigInteger定数0です。
        導入されたバージョン:
        1.2
      • ONE

        public static final BigInteger ONE
        BigInteger定数1です。
        導入されたバージョン:
        1.2
      • TWO

        public static final BigInteger TWO
        BigInteger定数2です。
        導入されたバージョン:
        9
      • TEN

        public static final BigInteger TEN
        BigInteger定数10です。
        導入されたバージョン:
        1.5
    • コンストラクタの詳細

      • BigInteger

        public BigInteger​(byte[] val,
                          int off,
                          int len)
        BigIntegerの2の2進数表現を含むバイト配列をBigIntegerに変換します。 サブ配列は、配列へのオフセットと長さによって指定されます。 サブアレイはbig-endianバイト・オーダーであると仮定される: 最上位バイトはインデックスoffの要素です。 val配列は、コンストラクタ呼び出しの間は変更されていないものとみなされます。 配列valの長さがゼロでなく、offが負の場合、lenが負の場合、またはoff+lenvalの長さより大きい場合は、IndexOutOfBoundsExceptionがスローされます。
        パラメータ:
        val - BigIntegerのビッグ・エンディアンの2の補数バイナリ表現であるサブ配列を含む2バイト配列です。
        off - バイナリ表現の開始オフセット。
        len - 使用するバイト数。
        例外:
        NumberFormatException - valの長さが0バイトの場合。
        IndexOutOfBoundsException - 指定された配列のオフセットと長さにより、バイト配列のインデックスが負であるか、配列の長さ以上になる場合。
        導入されたバージョン:
        9
      • BigInteger

        public BigInteger​(byte[] val)
        BigIntegerの2の補数2進表現を含むバイト配列をBigIntegerに変換します。 入力配列はビッグ・エンディアンのバイト順序(最上位バイトが0番目の要素)と見なされます。 val配列は、コンストラクタ呼び出しの間は変更されていないものとみなされます。
        パラメータ:
        val - BigIntegerのビッグ・エンディアンの2の補数バイナリ表現。
        例外:
        NumberFormatException - valの長さが0バイトの場合。
      • BigInteger

        public BigInteger​(int signum,
                          byte[] magnitude,
                          int off,
                          int len)
        BigIntegerの符号絶対値表現をBigIntegerに変換します。 符号は整数の符号値(負は -1、ゼロは0、正は1)として表されます。 大きさは、big-endianバイト・オーダーのバイト配列のサブ配列です: 最上位バイトはインデックスoffの要素です。 lenの長さのゼロ値が許容され、Signumが -1,0または1であるかどうかにかかわらずBigInteger値が0になります。 magnitude配列は、コンストラクタ呼び出しの間は変更されていないものとみなされます。 配列magnitudeの長さがゼロでなく、offが負の場合、lenが負の場合、またはoff+lenmagnitudeの長さより大きい場合は、IndexOutOfBoundsExceptionがスローされます。
        パラメータ:
        signum - 数字の符号(負は -1、ゼロは0、正は1)。
        magnitude - 数字の絶対値のビッグエンディアン・バイナリ表現。
        off - バイナリ表現の開始オフセット。
        len - 使用するバイト数。
        例外:
        NumberFormatException - signumが3つの有効な値(-1、0、1)のどれでもないか、signumが0で、magnitudeに1つ以上の0以外のバイトが含まれている場合。
        IndexOutOfBoundsException - 指定された配列のオフセットと長さにより、バイト配列のインデックスが負であるか、配列の長さ以上になる場合。
        導入されたバージョン:
        9
      • BigInteger

        public BigInteger​(int signum,
                          byte[] magnitude)
        BigIntegerの符号絶対値表現をBigIntegerに変換します。 符号は整数の符号値(負は -1、ゼロは0、正は1)として表されます。 大きさはbig-endianバイト・オーダーのバイト配列です: 最上位バイトは0番目の要素です。 長さが0の絶対値配列は許容され、符号が -1、0、または1のどれであるかにかかわりなくBigInteger値0となります。 magnitude配列は、コンストラクタ呼び出しの間は変更されていないものとみなされます。
        パラメータ:
        signum - 数字の符号(負は -1、ゼロは0、正は1)。
        magnitude - 数字の絶対値のビッグエンディアン・バイナリ表現。
        例外:
        NumberFormatException - signumが3つの有効な値(-1、0、1)のどれでもないか、signumが0で、magnitudeに1つ以上の0以外のバイトが含まれている場合。
      • BigInteger

        public BigInteger​(String val,
                          int radix)
        指定された基数内のBigIntegerのString表現をBigIntegerに変換します。 String表現は、指定された基数内の任意のマイナス符号またはプラス記号と、それに続く1つ以上の数字の列で構成されます。 文字型から数値型へのマッピングは Character.digitで提供されています。 Stringには、不適切な文字(空白など)を含めることはできません。
        パラメータ:
        val - BigIntegerのString表現。
        radix - valの解釈で使用される基数。
        例外:
        NumberFormatException - valが、指定した基数内のBigIntegerの有効な表現ではないか、radixCharacter.MIN_RADIXからCharacter.MAX_RADIXの範囲外にある場合。
        関連項目:
        Character.digit(char, int)
      • BigInteger

        public BigInteger​(String val)
        BigIntegerの10進String表現をBigIntegerに変換します。 String表現は、任意のマイナス符号とそれに続く1つ以上の10進数字の列で構成されます。 文字型から数値型へのマッピングはCharacter.digitで提供されています。 Stringには、不適切な文字(空白など)を含めることはできません。
        パラメータ:
        val - BigIntegerの10進数のString表現。
        例外:
        NumberFormatException - valはBigIntegerの表現としては無効である。
        関連項目:
        Character.digit(char, int)
      • BigInteger

        public BigInteger​(int numBits,
                          Random rnd)
        0 - (2numBits - 1)の範囲に一様に分散されている、ランダムに生成されたBigIntegerを構築します。 分散の一様さは、rndのランダム・ビットのソースに誤りがないことを前提とします。 このコンストラクタは、常に負でないBigIntegerを構築します。
        パラメータ:
        numBits - 新しいBigIntegerの最大ビット長。
        rnd - 新しいBigIntegerの計算で使用されるランダム・ビットのソース。
        例外:
        IllegalArgumentException - numBitsが負の場合。
        関連項目:
        bitLength()
      • BigInteger

        public BigInteger​(int bitLength,
                          int certainty,
                          Random rnd)
        ランダムに生成された(おそらく素数である)正のBigIntegerを、指定したビット長で構築します。
        APIの注:
        確実性を指定する必要がない場合は、このコンストラクタではなくprobablePrimeメソッドを使用することをお薦めします。
        パラメータ:
        bitLength - 返されるBigIntegerのビット長。
        certainty - 呼出し側が許容できる不確実性の程度。 新しいBigIntegerが素数である確率は、(1 - 1/2certainty)より大きい。 このコンストラクタの実行時間はこのパラメータの値に比例する
        rnd - 素数度をテストする候補の選択で使用されるランダム・ビットのソース。
        例外:
        ArithmeticException - bitLength < 2であるか、bitLengthが大きすぎる場合。
        関連項目:
        bitLength()
    • メソッドの詳細

      • probablePrime

        public static BigInteger probablePrime​(int bitLength,
                                               Random rnd)
        指定されたビット長で正のBigInteger (おそらく素数)を返します。 このメソッドから返されるBigIntegerが合成数である確率は2-100を超えません。
        パラメータ:
        bitLength - 返されるBigIntegerのビット長。
        rnd - 素数度をテストする候補の選択で使用されるランダム・ビットのソース。
        戻り値:
        bitLengthビットのBigInteger (おそらく素数)
        例外:
        ArithmeticException - bitLength < 2であるか、bitLengthが大きすぎる場合。
        導入されたバージョン:
        1.4
        関連項目:
        bitLength()
      • nextProbablePrime

        public BigInteger nextProbablePrime()
        このBigIntegerより大きい最初の整数(おそらく素数)を返します。 このメソッドの返す数が合成数である確率は2-100を超えません。 このメソッドは検索時に素数をスキップしません。pを返す場合、this < q < pが成り立つような素数qはありません。
        戻り値:
        このBigIntegerより大きい最初の整数(おそらく素数)。
        例外:
        ArithmeticException - this < 0であるか、thisが大きすぎる場合。
        導入されたバージョン:
        1.5
      • valueOf

        public static BigInteger valueOf​(long val)
        値が指定されたlongの値と等しいBigIntegerを返します。
        APIの注:
        この静的ファクトリ・メソッドは、頻繁に使用されるBigIntegerの再利用が可能なため、(long)コンストラクタに優先して提供されます。
        パラメータ:
        val - 返されるBigIntegerの値。
        戻り値:
        指定値を使ったBigInteger
      • add

        public BigInteger add​(BigInteger val)
        値が(this+val)であるBigIntegerを返します。
        パラメータ:
        val - このBigIntegerに加算する値。
        戻り値:
        this + val
      • subtract

        public BigInteger subtract​(BigInteger val)
        値が(this - val)であるBigIntegerを返します。
        パラメータ:
        val - このBigIntegerから減算する値。
        戻り値:
        this - val
      • multiply

        public BigInteger multiply​(BigInteger val)
        値が(this * val)であるBigIntegerを返します。
        実装上の注意:
        val == thisの場合、実装のアルゴリズム的パフォーマンスが向上することがあります。
        パラメータ:
        val - このBigIntegerで乗算する値。
        戻り値:
        this * val
      • divide

        public BigInteger divide​(BigInteger val)
        値が(this /val)であるBigIntegerを返します。
        パラメータ:
        val - このBigIntegerを除算する値。
        戻り値:
        this / val
        例外:
        ArithmeticException - valが0の場合。
      • divideAndRemainder

        public BigInteger[] divideAndRemainder​(BigInteger val)
        (this /val)そして(this % val)と続く、2つのBigIntegerの配列を返します。
        パラメータ:
        val - このBigIntegerを除算する値、および計算された剰余。
        戻り値:
        2つのBigIntegerの配列。商(this /val)が最初の要素で、剰余(this % val)が最後の要素。
        例外:
        ArithmeticException - valが0の場合。
      • remainder

        public BigInteger remainder​(BigInteger val)
        値が(this % val)であるBigIntegerを返します。
        パラメータ:
        val - このBigIntegerを除算する値、および計算された剰余。
        戻り値:
        this % val
        例外:
        ArithmeticException - valが0の場合。
      • pow

        public BigInteger pow​(int exponent)
        値が(thisexponent)のBigIntegerを返します。 exponentはBigIntegerではなく整数です。
        パラメータ:
        exponent - このBigIntegerを累乗する指数。
        戻り値:
        thisexponent
        例外:
        ArithmeticException - exponentが負の場合。 (非整数値を生成する演算が生じる。)
      • sqrt

        public BigInteger sqrt()
        このBigIntegerの整数平方根を返します。 対応する数学的整数nの整数平方根は、s*s <= nのような最大の数学的整数sです。 これはfloor(sqrt(n))の値に等しく、sqrt(n)は実数として扱われるnの実数平方根を表します。 後者が整数値として表現できない場合、整数平方根は実数平方根より小さくなることに注意してください。
        戻り値:
        thisの整数平方根
        例外:
        ArithmeticException - thisが負の場合。 (負の整数valの平方根は(i * sqrt(-val))であり、ここで、i「虚数単位」であり、sqrt(-1)と等しい。)
        導入されたバージョン:
        9
      • sqrtAndRemainder

        public BigInteger[] sqrtAndRemainder()
        thisの整数平方根sとその残りのthis - s*sをそれぞれ含む2つのBigIntegerの配列を返します。
        戻り値:
        オフセットが0の整数平方根、オフセットが1の余りの2つのBigIntegerの配列
        例外:
        ArithmeticException - thisが負の場合。 (負の整数valの平方根は(i * sqrt(-val))であり、ここで、i「虚数単位」であり、sqrt(-1)と等しい。)
        導入されたバージョン:
        9
        関連項目:
        sqrt()
      • gcd

        public BigInteger gcd​(BigInteger val)
        値がabs(this)abs(val)の最大公約数であるBigIntegerを返します。 this == 0 && val == 0の場合は0を返します。
        パラメータ:
        val - GCDの計算に使用する値。
        戻り値:
        GCD(abs(this), abs(val))
      • abs

        public BigInteger abs()
        値がこのBigIntegerの絶対値であるBigIntegerを返します。
        戻り値:
        abs(this)
      • negate

        public BigInteger negate()
        値が(-this)であるBigIntegerを返します。
        戻り値:
        -this
      • signum

        public int signum()
        このBigIntegerの符号要素を返します。
        戻り値:
        このBigIntegerが負の場合は -1、ゼロの場合は0、正の場合は1
      • modPow

        public BigInteger modPow​(BigInteger exponent,
                                 BigInteger m)
        値が(thisexponent mod m)のBigIntegerを返します。 (powと違って、このメソッドは負の指数を許容する。)
        パラメータ:
        exponent - 指数
        m - モジュラス。
        戻り値:
        thisexponent mod m
        例外:
        ArithmeticException - m≤0であるか、指数が負でこのBigIntegerがm素数ではない場合。
        関連項目:
        modInverse(java.math.BigInteger)
      • modInverse

        public BigInteger modInverse​(BigInteger m)
        値が(this-1 mod m)であるBigIntegerを返します。
        パラメータ:
        m - モジュラス。
        戻り値:
        this-1 mod m
        例外:
        ArithmeticException - m≤0であるか、あるいはこのBigIntegerがmod mの乗法逆数を持たない場合(つまり、このBigIntegerがmの素数ではない場合)。
      • shiftLeft

        public BigInteger shiftLeft​(int n)
        値が(this << n)であるBigIntegerを返します。 シフト移動量nが負の場合は、このメソッドは右シフトを実行します。 (floor(this * 2n)を計算する。)
        パラメータ:
        n - ビット単位でのシフト移動量。
        戻り値:
        this << n
        関連項目:
        shiftRight(int)
      • shiftRight

        public BigInteger shiftRight​(int n)
        値が(this>> n)であるBigIntegerを返します。 符号拡張が行われます。 シフト移動量nが負の場合は、このメソッドは左シフトを実行します。 (floor(this /2n)を計算する。)
        パラメータ:
        n - ビット単位でのシフト移動量。
        戻り値:
        this >> n
        関連項目:
        shiftLeft(int)
      • and

        public BigInteger and​(BigInteger val)
        値が(this & val)であるBigIntegerを返します。 (このメソッドは、thisとvalの両方が負の場合は負のBigIntegerを返す。)
        パラメータ:
        val - このBigIntegerとの論理積をとる値。
        戻り値:
        this & val
      • or

        public BigInteger or​(BigInteger val)
        値が(this|val)であるBigIntegerを返します。 (このメソッドは、thisまたはvalが負の場合は負のBigIntegerを返す。)
        パラメータ:
        val - このBigIntegerとの論理和をとる値。
        戻り値:
        this | val
      • xor

        public BigInteger xor​(BigInteger val)
        値が(this^val)であるBigIntegerを返します。 (このメソッドは、thisとvalの片方だけが負の場合に負のBigIntegerを返す。)
        パラメータ:
        val - このBigIntegerとの排他的論理和をとる値。
        戻り値:
        this ^ val
      • not

        public BigInteger not()
        値が(~this)であるBigIntegerを返します。 (このメソッドは、このBigIntegerが負でない場合に負の値を返す。)
        戻り値:
        ~this
      • andNot

        public BigInteger andNot​(BigInteger val)
        値が(this & ~val)であるBigIntegerを返します。 and(val.not())と同等のこのメソッドは、マスキング演算の便宜を図るために提供されています。 (このメソッドは、thisが負でvalが正の場合に負のBigInteger数値を返す。)
        パラメータ:
        val - このBigIntegerで補数がとられ、論理積がとられる値。
        戻り値:
        this & ~val
      • testBit

        public boolean testBit​(int n)
        指定されたビットが設定されている場合にだけtrueを返します。 (((this & (1<<n))!= 0)を計算する。)
        パラメータ:
        n - テストするビットのインデックス。
        戻り値:
        指定されたビットが設定されている場合にだけtrue
        例外:
        ArithmeticException - nが負の場合。
      • setBit

        public BigInteger setBit​(int n)
        値がこのBigIntegerに等しいBigIntegerを、指定されたビットを設定して返します。 ((this|(1<<n))を計算する。)
        パラメータ:
        n - 設定するビットのインデックス。
        戻り値:
        this | (1<<n)
        例外:
        ArithmeticException - nが負の場合。
      • clearBit

        public BigInteger clearBit​(int n)
        値がこのBigIntegerに等しいBigIntegerを、指定されたビットをクリアして返します。 ((this & ~(1<<n))を計算する。)
        パラメータ:
        n - クリアするビットのインデックス。
        戻り値:
        this & ~(1<<n)
        例外:
        ArithmeticException - nが負の場合。
      • flipBit

        public BigInteger flipBit​(int n)
        値がこのBigIntegerに等しいBigIntegerを、指定されたビットを反転させて返します。 ((this^(1<<n))を計算する。)
        パラメータ:
        n - 反転するビットのインデックス。
        戻り値:
        this ^ (1<<n)
        例外:
        ArithmeticException - nが負の場合。
      • getLowestSetBit

        public int getLowestSetBit()
        このBigIntegerのもっとも右側(1番低い位)の1ビットのインデックス(もっとも右側の1ビットの右方向の0ビットの数)を返します。 このBigIntegerに1ビットが1つも含まれない場合は -1を返します。 ((this == 0? -1 : log2(this & -this))を計算する。)
        戻り値:
        このBigIntegerのもっとも右側の1ビットのインデックス。
      • bitLength

        public int bitLength()
        このBigIntegerの最小の2の補数表現内のビット数を返します。ただし、符号ビットを除きます 正のBigIntegerについては、通常の2進表現におけるビットの数に等しくなります。 ゼロの場合、このメソッドは0を返します。 ((ceil(log2(this < 0 ? -this : this+1)))を計算する。)
        戻り値:
        このBigIntegerの最小の2の補数表現内のビット数。ただし、符号ビットを除きます
      • bitCount

        public int bitCount()
        このBigIntegerの2の補数表現内の、符号ビットと異なるビットの数を返します。 このメソッドはBigInteger上にビット・ベクトル形式の設定を実装する場合に便利です。
        戻り値:
        このBigIntegerの2の補数表現内の、符号ビットと異なるビットの数。
      • isProbablePrime

        public boolean isProbablePrime​(int certainty)
        このBigIntegerが素数である可能性が高い場合はtrue、必ず合成数である場合はfalseを返します。 certaintyが≤0の場合、trueが返されます。
        パラメータ:
        certainty - 呼出し側が許容できる不確実性の程度。この呼出しがtrueを返す場合、このBigIntegerが素数である確率は(1 - 1/2certainty)を超えます。 このメソッドの実行時間はこのパラメータの値に比例します。
        戻り値:
        このBigIntegerが素数である可能性が高い場合はtrue、必ず合成数である場合はfalse
      • compareTo

        public int compareTo​(BigInteger val)
        このBigIntegerを指定されたBigIntegerと比較します。 このメソッドは、6つのboolean型の比較演算子(<、==、>、>=、!=、<=)のそれぞれに対する個々のメソッドの代わりに提供されます。 これらの比較を行うには (x.compareTo(y) <op> 0)という組合せをお薦めします。この場合、<op>には6つの比較演算子のうちの1つが入ります。
        定義:
        compareTo、インタフェース: Comparable<BigInteger>
        パラメータ:
        val - このBigIntegerと比較するBigInteger。
        戻り値:
        このBigIntegerの数値がvalより小さい場合は -1、等しい場合は0、大きい場合は1。
      • equals

        public boolean equals​(Object x)
        このBigIntegerと指定されたObjectが等しいかどうかを比較します。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        x - このBigIntegerと比較するObject。
        戻り値:
        指定されたObjectが、このBigIntegerと値が等しいBigIntegerである場合にだけtrue
        関連項目:
        Object.hashCode()HashMap
      • min

        public BigInteger min​(BigInteger val)
        このBigIntegerとvalの最小値を返します。
        パラメータ:
        val - 最小値の計算に使用する値。
        戻り値:
        このBigIntegerとvalのうちで小さい方の値を持つBigInteger。 値が等しい場合はどちらかが返される。
      • max

        public BigInteger max​(BigInteger val)
        このBigIntegerとvalの最大値を返します。
        パラメータ:
        val - 最大値の計算に使用する値。
        戻り値:
        このBigIntegerとvalのうちで大きい方の値を持つBigInteger。 値が等しい場合はどちらかが返される。
      • toString

        public String toString​(int radix)
        指定された基数内のこのBigIntegerのString表現を返します。 基数がCharacter.MIN_RADIXからCharacter.MAX_RADIXの範囲外にある場合、デフォルトでは10になります(Integer.toStringの場合と同じ)。 Character.forDigitによる数値から文字へのマッピングが使用され、必要に応じてマイナス符号が前に付けられます。 (この表現は(String, int)コンストラクタと互換性があります)。
        パラメータ:
        radix - String表現の基数。
        戻り値:
        指定された基数内のこのBigIntegerのString表現。
        関連項目:
        Integer.toString(int, int), Character.forDigit(int, int), BigInteger(java.lang.String, int)
      • toString

        public String toString()
        このBigIntegerの10進String表現を返します。 Character.forDigitによる数値から文字へのマッピングが使用され、必要に応じてマイナス符号が前に付けられます。 (この表現は(String)コンストラクタと互換性があり、Javaの+演算子との連結を可能にします。)
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        このBigIntegerの10進数のString表現。
        関連項目:
        Character.forDigit(int, int), BigInteger(java.lang.String)
      • toByteArray

        public byte[] toByteArray()
        このBigIntegerの2の補数表現を含むバイト配列を返します。 バイト配列はビッグエンディアンのバイト順序(最上位バイトが0番目の要素)です。 配列には、最低1つの符号ビットを含むこのBigIntegerの表現に必要な最小のバイト数((ceil((this.bitLength()+1)/8)))が含まれます (この表現は(byte[])コンストラクタと互換性があります)。
        戻り値:
        このBigIntegerの2の補数表現を含むバイト配列。
        関連項目:
        BigInteger(byte[])
      • intValue

        public int intValue()
        このBigIntegerをintに変換します。 この変換は、longからintへのプリミティブ変換を狭めるに似ています。Java™言語仕様で定義されています: このBigIntegerが大きすぎてintに収まらない場合は、下位32ビットのみが返されます。 この変換により、このBigInteger値の絶対値全体に関する情報が失われ、逆の符号で返される可能性があります。
        定義:
        intValue、クラス: Number
        戻り値:
        intに変換されたこのBigInteger。
        関連項目:
        intValueExact()
        Java™言語仕様:
        5.1.3プリミティブ変換の絞り込み
      • longValue

        public long longValue()
        このBigIntegerをlongに変換します。 この変換は、longからintへのプリミティブ変換を狭めるに似ています。Java™言語仕様で定義されています: このBigIntegerが大きすぎてlongに収まらない場合は、下位64ビットのみが返されます。 この変換により、このBigInteger値の絶対値全体に関する情報が失われ、逆の符号で返される可能性があります。
        定義:
        longValue、クラス: Number
        戻り値:
        longに変換されたこのBigInteger。
        関連項目:
        longValueExact()
        Java™言語仕様:
        5.1.3プリミティブ変換の絞り込み
      • floatValue

        public float floatValue()
        このBigIntegerをfloatに変換します。 この変換は、Java™言語仕様で定義されているdoubleからfloatへのプリミティブ変換を狭めるに似ています: このBigIntegerの大きさがfloatとして表現するには大きすぎる場合は、必要に応じてFloat.NEGATIVE_INFINITYまたはFloat.POSITIVE_INFINITYに変換されます。 戻り値が有限である場合も、この変換により、BigInteger値の精度に関する情報が失われる可能性があります。
        定義:
        floatValue、クラス: Number
        戻り値:
        floatに変換されたこのBigInteger。
        Java™言語仕様:
        5.1.3プリミティブ変換の絞り込み
      • doubleValue

        public double doubleValue()
        このBigIntegerをdoubleに変換します。 この変換は、Java™言語仕様で定義されているdoubleからfloatへのプリミティブ変換を狭めるに似ています: このBigIntegerの大きさが大きすぎてdoubleとして表現できない場合は、適切な場合はDouble.NEGATIVE_INFINITYまたはDouble.POSITIVE_INFINITYに変換されます。 戻り値が有限である場合も、この変換により、BigInteger値の精度に関する情報が失われる可能性があります。
        定義:
        doubleValue、クラス: Number
        戻り値:
        doubleに変換されたこのBigInteger。
        Java™言語仕様:
        5.1.3プリミティブ変換の絞り込み
      • longValueExact

        public long longValueExact()
        このBigIntegerlongに変換し、失われた情報がないかどうかを確認します。 このBigIntegerの値がlong型の範囲から外れている場合は、ArithmeticExceptionがスローされます。
        戻り値:
        longに変換されたこのBigInteger
        例外:
        ArithmeticException - thisの値がlongにぴったり収まらない場合。
        導入されたバージョン:
        1.8
        関連項目:
        longValue()
      • intValueExact

        public int intValueExact()
        このBigIntegerintに変換し、失われた情報がないかどうかを確認します。 このBigIntegerの値がint型の範囲から外れている場合は、ArithmeticExceptionがスローされます。
        戻り値:
        intに変換されたこのBigInteger
        例外:
        ArithmeticException - thisの値がintに正確に収まらない場合。
        導入されたバージョン:
        1.8
        関連項目:
        intValue()
      • shortValueExact

        public short shortValueExact()
        このBigIntegershortに変換して、失われた情報がないかどうかを確認します。 このBigIntegerの値がshort型の範囲から外れている場合は、ArithmeticExceptionがスローされます。
        戻り値:
        shortに変換されたこのBigInteger
        例外:
        ArithmeticException - thisの値がshortにぴったり収まらない場合。
        導入されたバージョン:
        1.8
        関連項目:
        Number.shortValue()
      • byteValueExact

        public byte byteValueExact()
        このBigIntegerbyteに変換し、失われた情報がないかどうかを確認します。 このBigIntegerの値がbyte型の範囲から外れている場合は、ArithmeticExceptionがスローされます。
        戻り値:
        byteに変換されたこのBigInteger
        例外:
        ArithmeticException - thisの値がbyteにぴったり収まらない場合。
        導入されたバージョン:
        1.8
        関連項目:
        Number.byteValue()