BigIntegerクラスとは
JavaのBigInteger
クラスは、任意の大きさの整数を扱うためのクラスです。通常のint
型やlong
型では扱えない非常に大きな整数を扱うことが可能です。
BigInteger
クラスはjava.math
パッケージに含まれており、以下のようにインポートして使用します。
import java.math.BigInteger;
このクラスは不変(immutable)であり、一度作成したBigInteger
インスタンスは変更することができません。そのため、算術演算を行うと新たなBigInteger
インスタンスが返されます。
次のセクションでは、BigInteger
クラスの基本的な使い方について詳しく説明します。具体的な計算例も提供しますので、BigInteger
クラスの使い方を理解するのに役立つでしょう。
BigIntegerクラスの基本的な使い方
BigInteger
クラスのインスタンスは、文字列または数値を引数に取るコンストラクタを使用して作成します。以下に例を示します。
BigInteger bi1 = new BigInteger("1234567890");
BigInteger bi2 = new BigInteger("9876543210");
BigInteger
クラスは、加算、減算、乗算、除算などの基本的な算術演算をサポートしています。これらのメソッドは新しいBigInteger
インスタンスを返すことに注意してください。以下に例を示します。
BigInteger sum = bi1.add(bi2);
BigInteger diff = bi1.subtract(bi2);
BigInteger prod = bi1.multiply(bi2);
BigInteger quot = bi1.divide(bi2);
また、BigInteger
クラスは比較演算もサポートしています。compareTo
メソッドを使用して2つのBigInteger
インスタンスを比較できます。このメソッドは、呼び出し元の値が引数より小さい場合は負の数、等しい場合は0、大きい場合は正の数を返します。
int comparison = bi1.compareTo(bi2);
これらはBigInteger
クラスの基本的な使い方の一部です。次のセクションでは、さらに詳しくBigInteger
クラスのメソッドについて説明します。また、具体的な計算例も提供しますので、BigInteger
クラスの使い方を理解するのに役立つでしょう。
BigIntegerクラスのメソッド
BigInteger
クラスには多くの便利なメソッドがあります。以下にいくつかの主要なメソッドを紹介します。
算術演算
add(BigInteger val)
: このBigInteger
と引数のval
を加算した結果を返します。subtract(BigInteger val)
: このBigInteger
から引数のval
を減算した結果を返します。multiply(BigInteger val)
: このBigInteger
と引数のval
を乗算した結果を返します。divide(BigInteger val)
: このBigInteger
を引数のval
で除算した結果を返します。
比較演算
compareTo(BigInteger val)
: このBigInteger
と引数のval
を比較します。このBigInteger
がval
より小さい場合は負の数、等しい場合は0、大きい場合は正の数を返します。
ビット操作
shiftLeft(int n)
: このBigInteger
を左にn
ビットシフトします。shiftRight(int n)
: このBigInteger
を右にn
ビットシフトします。
その他のメソッド
abs()
: このBigInteger
の絶対値を返します。pow(int exponent)
: このBigInteger
のexponent
乗を返します。gcd(BigInteger val)
: このBigInteger
と引数のval
の最大公約数を返します。
これらはBigInteger
クラスのメソッドの一部です。次のセクションでは、これらのメソッドを使用した具体的な計算例を提供します。これらの例を通じて、BigInteger
クラスの使い方をより深く理解することができるでしょう。
BigIntegerクラスでの計算例
以下に、BigInteger
クラスを使用した具体的な計算例を示します。
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
BigInteger bi1 = new BigInteger("1234567890");
BigInteger bi2 = new BigInteger("9876543210");
// 加算
BigInteger sum = bi1.add(bi2);
System.out.println("Sum: " + sum);
// 減算
BigInteger diff = bi1.subtract(bi2);
System.out.println("Difference: " + diff);
// 乗算
BigInteger prod = bi1.multiply(bi2);
System.out.println("Product: " + prod);
// 除算
BigInteger quot = bi1.divide(bi2);
System.out.println("Quotient: " + quot);
// 比較
int comparison = bi1.compareTo(bi2);
System.out.println("Comparison: " + comparison);
// ビットシフト
BigInteger shiftLeft = bi1.shiftLeft(5);
System.out.println("Shift Left: " + shiftLeft);
BigInteger shiftRight = bi1.shiftRight(5);
System.out.println("Shift Right: " + shiftRight);
// 絶対値
BigInteger abs = diff.abs();
System.out.println("Absolute: " + abs);
// べき乗
BigInteger pow = bi1.pow(2);
System.out.println("Power: " + pow);
// 最大公約数
BigInteger gcd = bi1.gcd(bi2);
System.out.println("GCD: " + gcd);
}
}
このコードは、BigInteger
クラスの基本的な使い方と主要なメソッドの使用例を示しています。これらの例を参考に、BigInteger
クラスを使ってさまざまな計算を行うことができます。このクラスを使うことで、通常のint
型やlong
型では扱えない非常に大きな整数を扱うことが可能になります。これは、科学計算や暗号学など、大きな数値を扱う必要がある場面で非常に便利です。BigInteger
クラスを使いこなすことで、Javaプログラミングの幅が広がるでしょう。この記事がその一助となれば幸いです。それでは、Happy Coding! 🚀