C/C の 'long long' を理解する
C/C では、数値を処理するためにデータ型の範囲が重要です。 「long long」データ型は、標準の「long」型よりも大きな整数値に対応するために導入され、より正確な操作が可能になります。
次の C/C コード スニペットを考えてみましょう。
#include <stdio.h> int main() { int num1 = 1000000000; long num2 = 1000000000; long long num3; long long num4 = ~0; printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3)); printf("%d %ld %lld %llu", num1, num2, num3, num4); return 0; }
このコードを実行すると、次の出力が出力されます:
4 4 8 1000000000 1000000000 0 18446744073709551615
出力はいくつかの興味深い動作を示しています:
次に、コメント行のコメントを解除しましょう。
num3 = 100000000000;
コンパイルはエラーで失敗します。 : 「エラー: 整数定数が Long 型には大きすぎます。」これは、リテラル値「100000000000」が「long」型で表現できる最大値を超えているためです。この問題を解決するには、接尾辞 LL:
num3 = 100000000000LL;
を使用して、このリテラルが「long long」であることを指定する必要があります。この変更により、コードは正常にコンパイルされ、実行されます。出力には、'num3' の正しい値が含まれるようになりました:
4 4 8 1000000000 1000000000 100000000000 18446744073709551615
このコードは、データ型の重要性と、C/C プログラミングで大きな整数値を処理するための 'long long' 型の使用を示しています。
以上がC/C で大きな整数を処理するのに 'long long' が不可欠なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。