はじめに
この実験では、C 言語でlong longデータ型を使用して、大きな整数の演算を行う方法を学びます。この実験では、以下の手順をカバーします。
大きな整数値を扱うためにlong long変数を宣言し、これらの大きな整数に対して加算、減算、乗算、除算などの基本的な演算を実行し、結果を出力して検証します。この実験の終わりまでに、C プログラムで大きな整数データを効果的に扱うことができるようになります。
long long 変数の宣言
このステップでは、C 言語でlong long変数を宣言して、大きな整数の演算を扱う方法を学びます。long longデータ型は、標準の整数型と比べてはるかに大きな整数値を扱うことができます。
まず、long long変数の宣言を示す新しい C ファイルを作成しましょう。
cd ~/project
nano long_integer.c
次に、ファイルに以下のコードを追加します。
#include <stdio.h>
int main() {
// long long 変数を宣言
long long smallNumber = 1234567890;
long long largeNumber = 9876543210123456789LL;
// long long 変数の値を出力
printf("Small Number: %lld\n", smallNumber);
printf("Large Number: %lld\n", largeNumber);
return 0;
}
コードを詳しく見てみましょう。
long longを使用して、非常に大きな整数値を格納できる変数を宣言します。LLサフィックスは、long long型を明示的に指定するために大きな整数リテラルに使用されます。%lldフォーマット指定子は、long long整数を表示するために使用されます。
プログラムをコンパイルして実行します。
gcc long_integer.c -o long_integer
./long_integer
実行結果の例:
Small Number: 1234567890
Large Number: 9876543210123456789
大きな整数の演算の実行
このステップでは、C 言語でlong longデータ型を使用して、大きな整数の演算を行う方法を学びます。前の例を拡張して、基本的な数学演算を示します。
前のファイルを開き、演算を含めるように修正します。
cd ~/project
nano long_integer.c
以前の内容を以下のコードに置き換えます。
#include <stdio.h>
int main() {
// 演算用の long long 変数を宣言
long long num1 = 9876543210LL;
long long num2 = 1234567890LL;
// 加算
long long sum = num1 + num2;
printf("加算:%lld + %lld = %lld\n", num1, num2, sum);
// 減算
long long difference = num1 - num2;
printf("減算:%lld - %lld = %lld\n", num1, num2, difference);
// 乗算
long long product = num1 * num2;
printf("乗算:%lld * %lld = %lld\n", num1, num2, product);
return 0;
}
コードを詳しく見てみましょう。
long long変数num1とnum2を宣言します。- 加算、減算、乗算を実行します。
%lldフォーマット指定子を使用して、大きな整数の結果を出力します。LLサフィックスは、数値がlong longリテラルとして扱われることを保証します。
プログラムをコンパイルして実行します。
gcc long_integer.c -o long_integer
./long_integer
実行結果の例:
加算:9876543210 + 1234567890 = 11111111100
減算:9876543210 - 1234567890 = 8641975320
乗算:9876543210 * 1234567890 = 12193263111263526900
大きな結果の出力と検証
このステップでは、C 言語を使用して、異なるフォーマット技術とエラーチェックを用いて大きな整数の結果を出力および検証する方法を学びます。
以前のファイルを開き、高度な出力と検証を含めるように修正します。
cd ~/project
nano long_integer.c
以前の内容を以下のコードに置き換えます。
#include <stdio.h>
#include <limits.h>
int main() {
// 大きな計算用の long long 変数を宣言
long long num1 = 9876543210LL;
long long num2 = 1234567890LL;
// オーバーフローチェック付き乗算
long long product = num1 * num2;
printf("乗算結果:%lld\n", product);
// 異なる出力フォーマットのデモ
printf("16 進数表現:0x%llx\n", product);
printf("指数表記:%lle\n", (double)product);
// ポテンシャルなオーバーフローをチェック
if (product / num1 != num2) {
printf("警告:整数オーバーフローの可能性があります!\n");
}
// long long の最大値
printf("long long の最大値:%lld\n", LLONG_MAX);
return 0;
}
コードを詳しく見てみましょう。
- 10 進数、16 進数、指数表記の異なる出力フォーマットを使用します。
- 乗算結果を元の数値で割ることで、簡単なオーバーフローチェックを実装します。
LLONG_MAXを使用して、long long の最大値を表示します。
プログラムをコンパイルして実行します。
gcc long_integer.c -o long_integer
./long_integer
実行結果の例:
乗算結果:12193263111263526900
16 進数表現:0xa93263111263526900
指数表記:1.219326e+19
long long の最大値:9223372036854775807
まとめ
この実験では、C 言語でlong long変数を宣言して使用し、大きな整数の演算を扱う方法を学びました。最初にlong long変数を宣言し、その値を出力して、格納できる値の範囲を理解しました。次に、long longデータ型を使用して、大きな整数に対する加算、減算、乗算、除算などの基本的な演算を実行しました。最後に、これらの演算の結果を出力して検証する方法を学びました。この実験から得られる重要な教訓は、大きな整数の計算には適切なデータ型を使用すること、およびlong long値を出力するために必要な具体的なフォーマット指定子の重要性です。



