- すべての実装されたインタフェース:
Serializable
,Comparable<BigInteger>
算術演算のセマンティックスは、『Java言語仕様』に定義されているようにJavaの整数算術演算子を正確に模倣します。 たとえば、ゼロ除算はArithmeticException
をスローし、正の数による負の数の除算は負(または0)の剰余を出します。
シフト演算のセマンティックスは、負のシフト移動量を可能にするためJavaのシフト演算子を拡張しています。 負のシフト移動量を持つ右シフトは左シフトとなります。逆の場合も同じです。 この操作では、無署名の右シフト演算子(>>>
)は省略されていますが、概念的には固定の仮想符号ビットの数が無限の表現ではなく、概念的には固定のサイズではありません。
ビット単位の論理演算のセマンティックスは、Javaのビット整数演算子のセマンティックスを正確に模倣しています。 2項演算子(and
、or
、xor
)は、演算前に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でなければなりません。
- 実装上のノート:
- リファレンス実装では、結果が -2
Integer.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(String val)
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を返します。andNot(BigInteger val)
値が(this & ~val)
であるBigIntegerを返します。int
bitCount()
このBigIntegerの2の補数表現内の、符号ビットと異なるビットの数を返します。int
このBigIntegerの最小の2の補数表現内のビット数を返します。ただし、符号ビットを除きます。byte
このBigInteger
をbyte
に変換し、失われた情報がないかどうかを確認します。clearBit(int n)
値がこのBigIntegerに等しいBigIntegerを、指定されたビットをクリアして返します。int
compareTo(BigInteger val)
このBigIntegerを指定されたBigIntegerと比較します。divide(BigInteger val)
値が(this /val)
であるBigIntegerを返します。divideAndRemainder(BigInteger val)
(this /val)
そして(this % val)
と続く、2つのBigIntegerの配列を返します。double
このBigIntegerをdouble
に変換します。boolean
この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
hashCode()
このBigIntegerのハッシュ・コードを返します。int
intValue()
このBigIntegerをint
に変換します。int
このBigInteger
をint
に変換し、失われた情報がないかどうかを確認します。boolean
isProbablePrime(int certainty)
このBigIntegerが素数である可能性が高い場合はtrue
、必ず合成数である場合はfalse
を返します。long
このBigIntegerをlong
に変換します。long
このBigInteger
をlong
に変換し、失われた情報がないかどうかを確認します。max(BigInteger val)
このBigIntegerとval
の最大値を返します。min(BigInteger val)
このBigIntegerとval
の最小値を返します。mod(BigInteger m)
値が(this mod m
)であるBigIntegerを返します。modInverse(BigInteger m)
値が(this
-1mod m)
であるBigIntegerを返します。modPow(BigInteger exponent, BigInteger m)
値が(thisexponent mod m)
のBigIntegerを返します。multiply(BigInteger val)
値が(this * val)
であるBigIntegerを返します。negate()
値が(-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 (おそらく素数)を返します。remainder(BigInteger val)
値が(this % val)
であるBigIntegerを返します。setBit(int n)
値がこのBigIntegerに等しいBigIntegerを、指定されたビットを設定して返します。shiftLeft(int n)
値が(this << n)
であるBigIntegerを返します。shiftRight(int n)
値が(this>> n)
であるBigIntegerを返します。short
このBigInteger
をshort
に変換して、失われた情報がないかどうかを確認します。int
signum()
このBigIntegerの符号要素を返します。sqrt()
このBigIntegerの整数平方根を返します。this
の整数平方根s
とその残りのthis - s*s
をそれぞれ含む2つのBigIntegerの配列を返します。subtract(BigInteger val)
値が(this - val)
であるBigIntegerを返します。boolean
testBit(int n)
指定されたビットが設定されている場合にだけtrue
を返します。byte[]
このBigIntegerの2の補数表現を含むバイト配列を返します。toString()
この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
-
フィールド詳細
-
ZERO
public static final BigInteger ZEROBigInteger定数0です。- 導入されたバージョン:
- 1.2
-
ONE
public static final BigInteger ONEBigInteger定数1です。- 導入されたバージョン:
- 1.2
-
TWO
public static final BigInteger TWOBigInteger定数2です。- 導入されたバージョン:
- 9
-
TEN
public static final BigInteger TENBigInteger定数10です。- 導入されたバージョン:
- 1.5
-
-
コンストラクタの詳細
-
BigInteger
public BigInteger(byte[] val, int off, int len)BigIntegerの2の2進数表現を含むバイト配列をBigIntegerに変換します。 サブ配列は、配列へのオフセットと長さによって指定されます。 サブアレイはbig-endianバイト・オーダーであると仮定される: 最上位バイトはインデックスoff
の要素です。val
配列は、コンストラクタ呼び出しの間は変更されていないものとみなされます。 配列val
の長さがゼロでなく、off
が負の場合、len
が負の場合、またはoff+len
がval
の長さより大きい場合は、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+len
がmagnitude
の長さより大きい場合は、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の有効な表現ではないか、radix
がCharacter.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
-1mod m)
であるBigIntegerを返します。- パラメータ:
m
- モジュラス。- 戻り値:
this
-1mod 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()このBigInteger
をlong
に変換し、失われた情報がないかどうかを確認します。 このBigInteger
の値がlong
型の範囲から外れている場合は、ArithmeticException
がスローされます。- 戻り値:
long
に変換されたこのBigInteger
。- 例外:
ArithmeticException
-this
の値がlong
にぴったり収まらない場合。- 導入されたバージョン:
- 1.8
- 関連項目:
longValue()
-
intValueExact
public int intValueExact()このBigInteger
をint
に変換し、失われた情報がないかどうかを確認します。 このBigInteger
の値がint
型の範囲から外れている場合は、ArithmeticException
がスローされます。- 戻り値:
int
に変換されたこのBigInteger
。- 例外:
ArithmeticException
-this
の値がint
に正確に収まらない場合。- 導入されたバージョン:
- 1.8
- 関連項目:
intValue()
-
shortValueExact
public short shortValueExact()このBigInteger
をshort
に変換して、失われた情報がないかどうかを確認します。 このBigInteger
の値がshort
型の範囲から外れている場合は、ArithmeticException
がスローされます。- 戻り値:
short
に変換されたこのBigInteger
。- 例外:
ArithmeticException
-this
の値がshort
にぴったり収まらない場合。- 導入されたバージョン:
- 1.8
- 関連項目:
Number.shortValue()
-
byteValueExact
public byte byteValueExact()このBigInteger
をbyte
に変換し、失われた情報がないかどうかを確認します。 このBigInteger
の値がbyte
型の範囲から外れている場合は、ArithmeticException
がスローされます。- 戻り値:
byte
に変換されたこのBigInteger
。- 例外:
ArithmeticException
-this
の値がbyte
にぴったり収まらない場合。- 導入されたバージョン:
- 1.8
- 関連項目:
Number.byteValue()
-