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

クラスBigInteger

java.lang.Object
java.lang.Number
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をスローします。
Java言語仕様を参照してください:
4.2.2 整数演算
導入されたバージョン:
1.1
関連項目:
BigDecimal直列化された形式
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static BigInteger
    BigInteger定数1です。
    static BigInteger
    BigInteger定数10です。
    static BigInteger
    BigInteger定数2です。
    static BigInteger
    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の10進String表現をBigIntegerに変換します。
    BigInteger​(String val, int radix)
    指定された基数内のBigIntegerのString表現をBigIntegerに変換します。
  • メソッドのサマリー

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

    クラス java.lang.Numberで宣言されたメソッド

    byteValue, shortValue

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • 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の範囲外にある場合。
    • BigInteger

      public BigInteger(String val)
      BigIntegerの10進String表現をBigIntegerに変換します。 文字列表現は、オプションのマイナス記号またはプラス記号とそれに続く1桁以上の小数で構成されます。 文字から数字へのマッピングは、Character.digitによって提供されます。 Stringには、不適切な文字(空白など)を含めることはできません。
      パラメータ:
      val - BigIntegerの10進数のString表現。
      例外:
      NumberFormatException - valはBigIntegerの表現としては無効である。
    • 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
    • mod

      public BigInteger mod(BigInteger m)
      値が(this mod m)であるBigIntegerを返します。 このメソッドは、常に負でない BigIntegerを返すremainderとは異なります。
      パラメータ:
      m - モジュラス。
      戻り値:
      this mod m
      例外:
      ArithmeticException - m ≤ 0
      関連項目:
      remainder(java.math.BigInteger)
    • 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)
    • および

      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。 値が等しい場合はどちらかが返される。
    • hashCode

      public int hashCode()
      このBigIntegerのハッシュ・コードを返します。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このBigIntegerのハッシュ・コード
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • 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。
      Java言語仕様を参照してください:
      5.1.3 プリミティブ・コンバージョンの解説
      関連項目:
      intValueExact()
    • longValue

      public long longValue()
      このBigIntegerをlongに変換します。 この変換は、longからintへのプリミティブ変換を狭めるに似ています。Java言語仕様で定義されています: このBigIntegerが大きすぎてlongに収まらない場合は、下位64ビットのみが返されます。 この変換により、このBigInteger値の絶対値全体に関する情報が失われ、逆の符号で返される可能性があります。
      定義:
      longValue、クラス: Number
      戻り値:
      longに変換されたこのBigInteger。
      Java言語仕様を参照してください:
      5.1.3 プリミティブ・コンバージョンの解説
      関連項目:
      longValueExact()
    • 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()