C++ の数値リテラル ― 10 進・8 進・16 進を比較して理解する方法

目次

はじめに

C++ では、同じ数値を複数の進数表記で記述できます。特に、10 進(通常の整数)、8 進(先頭 0)、16 進(0x 接頭辞)は、プログラム内で数値をわかりやすく記述するために頻繁に使用されます。本記事では、各種リテラルを切り替えて出力するサンプルコードを紹介し、数値リテラルの仕組みを丁寧に解説いたします。


サンプルコード

// 進数ごとの数値リテラルを出力するサンプル
#include <iostream>

int main(int /*argc*/, char* /*argv*/[])
{
    // 10 進数リテラル
    std::cout << "10 進数 42 は "  << 42   << " です。" << '\n';

    // 8 進数リテラル(先頭に 0)
    std::cout << "8 進数 052 は " << 052  << " です。" << '\n';

    // 16 進数リテラル(0x 接頭辞)
    std::cout << "16 進数 0x2A は " << 0x2A << " です。" << '\n';

    // 別の 16 進数リテラル例
    std::cout << "16 進数 0xFF は " << 0xFF << " です。" << '\n';

    return 0;
}

コード解説

説明
3#include <iostream> をインクルードし、標準入出力を利用できるようにします。
5main 関数はプログラムのエントリーポイントです。未使用の引数はコメントで抑止しています。
842 は 10 進の整数リテラルです。
11052 は 8 進表記で 42 を表します。先頭の 0 が 8 進数を示します。
140x2A は 16 進表記で 42 を表します。接頭辞 0x が 16 進数を示します。
170xFF は 16 進表記で 255 を表します。

数値リテラル早見表

進数記述例説明
10 進42一般的な整数表記
8 進052先頭 0 を付ける。052 は 10 進で 42
16 進0x2A0x を付ける。0x2A は 10 進で 42
16 進0xFF0x を付ける。0xFF は 10 進で 255

実行手順

  1. ファイル保存
    コードを numeric_literals.cpp というファイル名で保存してください。
  2. コンパイル bashコピーする編集するg++ numeric_literals.cpp -o numeric_literals
  3. 実行 bashコピーする編集する./numeric_literals 実行結果 コピーする編集する10 進数 42 は 42 です。 8 進数 052 は 42 です。 16 進数 0x2A は 42 です。 16 進数 0xFF は 255 です。

まとめ

数値リテラルを活用すれば、同じ値を異なる進数で表現し、コードの可読性や意図を明確にできます。C++ では 10 進、8 進、16 進それぞれに固有の書式が存在し、接頭辞や先頭の 0 によって進数を区別します。本記事のサンプルを参考に、用途に応じて最適なリテラル表記を選択してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次