Developer 19 Jun 2026 7 分で読めます

ASCII エンコードの解説:テキスト、10進数、16進数、2進数、8進数

ASCIIは各印刷可能文字を0から127の数値にマッピングします。その数値を10進数、16進数、2進数、8進数で理解することは、開発者が思った以上に頻繁に必要とするスキルです。

ASCII Encoding Guide - Text to Decimal Hex Binary Octal

ASCIIとは?

ASCIIはAmerican Standard Code for Information Interchange(情報交換用米国標準コード)の略です。1963年に公開され、128文字と0から127の整数の対応関係を定義しています。この128文字には英字(大文字・小文字)、数字0〜9、句読点、そして改行・タブ・キャリッジリターンなど33種類の制御文字が含まれます。

日本語との関連で重要な点として、ASCII範囲(0〜127)には日本語文字は含まれません。ただし、半角カタカナ(アイウエオなど)は拡張ASCIIの一種であるJIS X 0201でコード160〜223に定義されており、これがShift_JISの設計に影響を与えました。Shift_JISはASCIIと半角カタカナを組み合わせた上で日本語全角文字を扱う2バイト文字コードです。

開発者がASCIIを必要とする場面

  • バイナリファイルの解読:ヘキサエディタで0x48 0x54 0x54 0x50を見たとき、それが"HTTP"だとわかれば即座に内容を把握できます。
  • ネットワークプロトコルのデバッグ:生のTCPやHTTPトラフィックはASCIIテキストです。ASCII表を知っていればパケットキャプチャが読めます。
  • URLエンコード:スペースはASCII 32(0x20)、だからURLでは%20になります。パーセント記号の後にASCIIコードの16進数値が続きます。
  • エスケープシーケンス:\nはASCII 10、\tはASCII 9、\rはASCII 13。ログファイルが崩れているとき、これらが原因であることが多いです。
  • レガシーシステム:メインフレーム、組み込みファームウェア、シリアルプロトコルはASCIIを中心に設計されています。

4つの数値システム、1つの例で

文字Aは最もわかりやすい例です。4つすべてのシステムで値を覚えやすいからです。

システム"A"の値読み方
10進数65基数10、普段使う数え方
16進数0x41基数16;4×16 + 1 = 65
2進数01000001基数2;メモリに実際に格納されるビット
8進数101基数8;1×64 + 0×8 + 1 = 65

小文字のaは10進数97(0x61)です。大文字と小文字の差は正確に32 — スペースと同じ値です。偶然ではありません:大文字小文字変換をビット1つの操作にする意図的な設計です。

実践例

URLエンコード

ブラウザがURLをエンコードするとき、各安全でない文字のASCII値を取り、パーセント記号と2桁の16進数として書きます。スペース(ASCII 32 = 0x20)は%20になります。URLエンコーダー/デコーダーで任意のURLを即座にエンコード・デコードできます。

エスケープシーケンス

  • \n — ASCII 10、改行
  • \r — ASCII 13、キャリッジリターン(Windows改行:\r\n
  • \t — ASCII 9、水平タブ
  • \0 — ASCII 0、null(Cでの文字列終端文字)
  • \x41 — 16進エスケープ;ASCII 65 = "A"

拡張ASCIIとUnicode

標準ASCIIは128文字をカバーします — 英語には十分ですが他の言語には不十分です。様々な「拡張ASCII」は8ビット目を使って128文字を追加しましたが、統一標準がありませんでした。コードページ437、Latin-1、Windows-1252はすべて同じバイト範囲を異なる文字に使用しました。日本では独自にShift_JISやEUC-JPが発展し、ファイルの文字化け問題を引き起こしました。

Unicodeはすべてのライティングシステムのすべてのキャラクターに固有番号を割り当てることでこれを解決しました。UTF-8はASCIIと後方互換性があり、最初の128 Unicode符号点はASCIIと同一です。

関連ツール

バイナリデータと一緒にASCIIを扱う場合は、バイナリからテキストへの変換ツールが生のバイナリ文字列を読めるテキストに変換します。数値基数の変換には数値基数コンバーターが10進数、16進数、2進数、8進数を処理します。

よくある質問

スペースのASCII値は?

スペースはASCII 32(10進数)、0x20(16進数)、00100000(2進数)です。最も低い印刷可能なASCII文字で、32未満はすべて制御文字です。

"A"が10進数65なのはなぜ?

0〜31は制御文字用に予約されており、32はスペースです。印刷可能文字は33から始まります。数字0〜9は48〜57、大文字A〜Zは65〜90、小文字a〜zは97〜122にあります。

ASCIIとUnicodeの違いは?

ASCIIは128文字を定義します。Unicodeは140,000文字以上を定義します。最初の128 Unicode符号点はASCIIと同一なので、UTF-8でエンコードされたASCIIテキストはバイト単位で普通のASCIIと同一です。

今すぐテキストをASCIIに変換

テキストを貼り付けると、各文字の10進数、16進数、2進数、8進数の値を瞬時に確認できます。