この記事のポイント
JavaScriptで扱える数値には限界がありますが、BigInt型を使えばその制限を超えた巨大な整数計算が可能になります。ここでは初心者の方でもすぐに理解できるよう、基本から実践的な使い方まで丁寧に解説していきます。
通常のNumber型では表現できない大きな整数を正確に扱うためのデータ型 nサフィックスやBigInt関数を使った基本的な記法と四則演算などの基本操作 実務で役立つ具体的なコード例とそれぞれの出力結果を確認できる学習内容 これらのポイントを押さえることで、BigInt型を使った開発がスムーズに進められるようになります。
BigInt型とは? BigInt型は、通常のNumber型 では扱えない大きな整数を正確に計算するために導入されたデータ型です。
従来のNumber型は2の53乗マイナス1までの整数しか安全に扱えませんでしたが、BigInt型を使えば理論上無制限の桁数を持つ整数を扱えます。たとえば科学計算や暗号処理、大規模なデータ処理などで必要となる巨大な数値も、精度を失うことなく計算できるようになります。
数値の末尾にnを付けるか、BigInt関数を使うことで簡単に作成でき、四則演算や比較演算など基本的な操作はNumber型と同じように直感的に記述できます。ただしNumber型との混在演算はできないため、型の統一が必要です。これにより、より高度な数値計算がJavaScriptでも実現可能になりました。
【関連】JavaScriptをもっと詳しく学ぶならpaizaラーニング
基本構文 BigInt型を作成する方法は主に2つあります。1つは数値の末尾にnを付ける方法で、もう1つはBigInt関数を使う方法です。
まず、数値リテラルの末尾にnを付ける方法を見てみましょう。
const bigNum1 = 123456789012345678901234567890n;
const bigNum2 = 100n;
console.log(bigNum1);
console.log(bigNum2);
実行する
出力結果
123456789012345678901234567890n
100n次に、BigInt関数を使って既存の数値や文字列からBigInt型を作成する方法です。
const bigNum3 = BigInt("987654321098765432109876543210");
const bigNum4 = BigInt(500);
console.log(bigNum3);
console.log(bigNum4);
実行する
出力結果
987654321098765432109876543210n
500n実用例 ここからは、BigInt型を実際のプログラムでどのように活用できるかを具体的なコード例とともに紹介します。それぞれのコード例は実際に動作するものばかりで、出力結果も確認できるようにしています。BigInt型の特徴、BigInt関数の基本的な使い方から応用的な処理まで、段階的に学べる構成になっています。
大きな数値の加算計算 ネコとイヌの全世界での推定個体数を足し合わせる例です。通常のNumber型では扱えないほど大きな数値でも、BigInt型なら正確に計算できます。
const catPopulation = BigInt("600000000000000");
const dogPopulation = BigInt("900000000000000");
const total = catPopulation + dogPopulation;
console.log("ネコ: " + catPopulation);
console.log("イヌ: " + dogPopulation);
console.log("合計: " + total);
実行する
出力結果
ネコ: 600000000000000
イヌ: 900000000000000
合計: 1500000000000000階乗計算 ウサギの繁殖パターンを計算するために階乗を使う例です。BigInt型を使えば大きな階乗も正確に求められます。
function factorial(n) {
let result = BigInt(1);
for (let i = BigInt(2); i <= n; i++) {
result *= i;
}
return result;
}
const rabbitCalc = factorial(BigInt(20));
console.log("20の階乗: " + rabbitCalc);
実行する
出力結果
20の階乗: 2432902008176640000べき乗計算 バクテリアの増殖パターンを2のべき乗で表現する例です。指数関数的な増加もBigInt型なら簡単に計算できます。
const bacteriaBase = BigInt(2);
const generations = BigInt(100);
let bacteriaCount = BigInt(1);
for (let i = BigInt(0); i < generations; i++) {
bacteriaCount *= bacteriaBase;
}
console.log("バクテリア数: " + bacteriaCount);
実行する
出力結果
バクテリア数: 1267650600228229401496703205376数値の比較処理 ゾウとクジラの体重を比較する例です。BigInt型でも通常の比較演算子が使えます。
const elephantWeight = BigInt(5000000);
const whaleWeight = BigInt(150000000);
if (whaleWeight > elephantWeight) {
console.log("クジラの方が重い");
} else {
console.log("ゾウの方が重い");
}
console.log("体重差: " + (whaleWeight - elephantWeight) + "グラム");
実行する
出力結果
クジラの方が重い
体重差: 145000000グラム文字列からの変換 アリのコロニーの個体数を文字列データから読み込んで計算する例です。外部データとしての文字列をBigInt型に変換できます。
const antColonyStr = "50000000000000";
const antColony = BigInt(antColonyStr);
const newAnts = BigInt("10000000000000");
const totalAnts = antColony + newAnts;
console.log("合計アリ数: " + totalAnts);
実行する
出力結果
合計アリ数: 60000000000000配列を使った計算 複数の動物園のペンギン総数を配列で管理して合計する例です。配列操作とBigInt関数を組み合わせた実用的なパターンです。
const penguinCounts = [BigInt(12000), BigInt(25000), BigInt(18000), BigInt(30000)];
let totalPenguins = BigInt(0);
for (const count of penguinCounts) {
totalPenguins += count;
}
console.log("ペンギン総数: " + totalPenguins);
実行する
出力結果
ペンギン総数: 85000ループ処理での活用 カメの年齢を年ごとに加算していく例です。長寿動物の年齢計算にBigInt型を活用しています。
let turtleAge = BigInt(0);
for (let year = BigInt(1); year <= BigInt(200); year++) {
turtleAge++;
}
console.log("カメの年齢: " + turtleAge + "歳");
実行する
出力結果
カメの年齢: 200歳条件分岐との組み合わせ キリンの身長データを判定して分類する例です。BigInt関数でも条件分岐が自然に記述できます。
const giraffeHeight = BigInt(5200);
let sizeCategory;
if (giraffeHeight > BigInt(6000)) {
sizeCategory = "特大";
} else if (giraffeHeight > BigInt(5000)) {
sizeCategory = "大";
} else {
sizeCategory = "中";
}
console.log("キリンのサイズ: " + sizeCategory);
console.log("身長: " + giraffeHeight + "ミリメートル");
実行する
出力結果
キリンのサイズ: 大
身長: 5200ミリメートルまとめ BigInt型は、従来のNumber型では扱いきれなかった大きな整数を正確に計算できる強力なデータ型です。BigInt型の使い方を理解することで、科学計算や暗号処理、大規模データの集計など、より高度なプログラミングが可能になります。
BigInt型の活躍する場面
暗号化アルゴリズムで使用される巨大な素数計算や鍵生成処理
金融システムにおける高精度な通貨計算や資産管理処理
科学技術計算での天文学的な数値や微小な誤差も許されない演算
重要なポイント
数値の末尾にnを付けるかBigInt関数を使って簡単に作成可能
四則演算や比較演算など基本的な演算子がそのまま使用できる仕様
Number型との混在演算は不可のため型変換や型統一が必要な点
これらのポイントを押さえておけば、BigInt型を使った開発がスムーズに進められます。大きな数値を扱う必要がある場面に直面したときは、ぜひBigInt型の活用を検討してみてください。適切に使用することで、プログラムの精度と信頼性を大きく向上させることができます。
レベルを更に上げたい方はpaizaプログラミングスキルチェックへ