java.lang.Object
java.lang.Number
java.math.BigInteger
public class BigInteger
변경이 불가능한, 임의 정밀도의 정수입니다. 모든 연산은, BigInteger 가 (Java 원시적 정수형과 같은) 2 치 보수 표기법으로 나타내졌는지와 같이 동작합니다. BigInteger는 Java 모든 원시적 정수 연산자와 java.lang.Math 관련된 모든 메서드에 동등의 것을 제공합니다. 또, BigInteger는 모듈러 산술, GCD 계산, 소수도 테스트, 소수 생성, 비트 조작, 그 외의 몇개의 조작에 대한 연산도 제공합니다.
산술 연산의 시멘틱스는 「Java 언어 사양」에 정의되고 있도록 Java 정수 산술 연산자를 정확하게 모방합니다. 예를 들어, 제로 제산은 ArithmeticException를 Throw 해, 정의 수에 한 부의 수의 제산은 부 (또는 0)의 잉여를 냅니다. 오버플로우에 관한 사양내의 자세한 것은 모두 무시되어 BigInteger는 연산의 결과의 수락에 필요한 만큼 커집니다.
쉬프트 연산의 시멘틱스는 부의 쉬프트 이동량을 가능하게 하기 위한(해) 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
를
Throw 합니다.
BigDecimal
,
직렬화 된 형식 필드 개요 | |
---|---|
static BigInteger |
ONE
BigInteger 정수 1 입니다. |
static BigInteger |
TEN
BigInteger 정수 10 입니다. |
static BigInteger |
ZERO
BigInteger 정수 0 입니다. |
생성자 개요 | |
---|---|
BigInteger (byte[] val)
BigInteger 2 보수 2 진표현을 포함한 바이트 배열을 BigInteger 로 변환합니다. |
|
BigInteger (int signum,
byte[] magnitude)
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를 돌려줍니다 (이 메서드는 this 와 val 양쪽 모두가 부의 경우는 부의 BigInteger를 돌려준다). |
BigInteger |
andNot (BigInteger val)
값이 (this & ~val) 인 BigInteger를 돌려줍니다. |
int |
bitCount ()
이 BigInteger 2 보수 표현내의, 부호 비트와 다른 비트의 수를 돌려줍니다. |
int |
bitLength ()
이 BigInteger 최소의 2 보수 표현내의 비트수를 돌려줍니다. |
BigInteger |
clearBit (int n)
값이 이 BigInteger 에 동일한 BigInteger를 , 지정된 비트를 클리어 해 돌려줍니다 ((this & ~(1<<n))를 계산한다). |
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를 , 지정된 비트를 반전시켜 돌려줍니다 ((this ^ (1<<n))를 계산한다). |
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 로 변환합니다. |
boolean |
isProbablePrime (int certainty)
이 BigInteger 가 소수일 가능성이 높은 경우는 true를 돌려주고, 반드시 합성수인 경우는 false를 돌려줍니다. |
long |
longValue ()
이 BigInteger를 long 로 변환합니다. |
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를 돌려줍니다 (pow 와 달리, 이 메서드는 부의 지수를 허용 한다). |
BigInteger |
multiply (BigInteger val)
값이 (this * val) BigInteger를 돌려줍니다. |
BigInteger |
negate ()
값이 (-this) BigInteger를 돌려줍니다. |
BigInteger |
nextProbablePrime ()
이 BigInteger 보다 큰 최초의 정수 (아마 소수)를 돌려줍니다. |
BigInteger |
not ()
값이 (~this) BigInteger를 돌려줍니다 (이 메서드는 이 BigInteger 가 부가 아닌 경우에 부의 값을 돌려준다). |
BigInteger |
or (BigInteger val)
값이 (this | val) BigInteger를 돌려줍니다 (이 메서드는 this 또는 val 가 부의 경우는 부의 BigInteger를 돌려준다). |
BigInteger |
pow (int exponent)
값이 (thisexponent) BigInteger를 돌려줍니다. |
static BigInteger |
probablePrime (int bitLength,
Random rnd)
지정된 bit length로 정의 BigInteger (아마 소수)를 돌려줍니다. |
BigInteger |
remainder (BigInteger val)
값이 (this % val) BigInteger를 돌려줍니다. |
BigInteger |
setBit (int n)
값이 이 BigInteger 에 동일한 BigInteger를 , 지정된 비트를 설정해 돌려줍니다 ((this | (1<<n))를 계산한다). |
BigInteger |
shiftLeft (int n)
값이 (this << n) BigInteger를 돌려줍니다. |
BigInteger |
shiftRight (int n)
값이 (this >> n) BigInteger를 돌려줍니다. |
int |
signum ()
이 BigInteger 부호 요소를 돌려줍니다. |
BigInteger |
subtract (BigInteger val)
값이 (this - val) BigInteger를 돌려줍니다. |
boolean |
testBit (int n)
지정된 비트가 설정되어 있는 경우에만 true를 돌려줍니다 ((this & (1<<n)) ! |
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를 돌려줍니다 (이 메서드는 this 와 val 다른 한쪽만이 부의 경우에 부의 BigInteger를 돌려준 |