C++ における文字コードリテラル ― 8 進数と 16 進数を使った文字の表現方法

目次

はじめに

C++ の文字リテラルには、通常の文字を直接記述する方法のほかに、数値(8 進数や 16 進数)で文字コードを指定する手段がございます。本記事では、エスケープシーケンス \ooo(8 進数)と \xhh(16 進数)を利用して文字を出力する方法を、変更済みのサンプルコードと共に丁寧に解説いたします。


サンプルコード

// 数値による文字コード指定を学ぶサンプル
#include <iostream>

int main(int /*argc*/, char* /*argv*/[])
{
    // 8 進数 101 (十進数 65) は大文字 'A'
    std::cout << "8 進数 101 が表す文字: " << '\101' << '\n';

    // 16 進数 61 (十進数 97) は小文字 'a'
    std::cout << "16 進数 61 が表す文字: " << '\x61' << '\n';

    return 0;
}

コード解説

行番号説明
3#include <iostream> により、標準入出力用ストリームを利用いたします。
5main 関数はプログラムのエントリーポイントです。未使用の引数はコメントで抑止しております。
8'\101' は 8 進数で 101、十進数では 65、ASCII で大文字 A に相当いたします。
11'\x61' は 16 進数で 61、十進数では 97、ASCII で小文字 a に相当いたします。
13return 0; により正常終了を示します。

文字コードリテラル早見表

エスケープ形式記述例説明出力例
\ooo'\101'0–3 桁の 8 進数で文字コードを指定A
\xhh'\x61'16 進数で文字コードを指定(桁数は任意)a

実行手順

  1. ソースファイルの保存
    上記コードを code_literal.cpp という名前で保存いたします。
  2. コンパイル bashコピーする編集するg++ code_literal.cpp -o code_literal
  3. 実行 bashコピーする編集する./code_literal 実行結果は下記のとおりです。 lessコピーする編集する8 進数 101 が表す文字: A 16 進数 61 が表す文字: a

まとめ

8 進数および 16 進数のエスケープシーケンスを用いることで、任意の文字コードを直接指定して出力することが可能です。本記事では、'\101''\x61' を例に、それぞれ大文字 A と小文字 a を表示する方法をご紹介いたしました。文字コードを理解すると、制御文字の出力やバイナリデータの処理など、より柔軟な文字列操作が行えます。今後のプログラミングにお役立ていただければ幸いです。

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

この記事を書いた人

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

目次