シルギア

ASCIIコードの基礎|7ビット0〜127の仕組みと制御文字・16進/2進の対応

公開日:2026年8月30日 運営:シルギア(Analyzegear, Inc.) 対象ツール:ASCIIコード表・変換

ASCII(American Standard Code for Information Interchange、アスキー)は、アルファベット・数字・記号・制御文字のそれぞれに0〜127の番号を割り当てた、最も基本的な文字コードの規格です。コンピュータは文字をそのまま扱えず、内部ではすべて数値として保持します。その「文字と番号の対応表」の出発点がASCIIであり、今日のほとんどの文字コードがこの上に成り立っています。本記事では、本ツールの早見表・変換機能で実際に確かめられる範囲に沿って、ASCIIの仕組みを具体的な数値とともに解説します。

なぜ0〜127なのか — 7ビットという設計

ASCIIは7ビットで1文字を表します。ビットは0か1の2通りなので、7桁ならば2の7乗=128通りの組み合わせが作れます。番号を0から数え始めるため、表せる番号はちょうど0〜127になります。最大値の127は2進数で書くと1が7つ並んだ1111111で、これが7ビットで表現できる上限です。

1バイトは8ビットですが、ASCIIはそのうち下位7ビットしか使わず、最上位ビットは空いています。この「1バイトの上半分が空いている」性質が、後述するUTF-8との相性の良さにつながります。

制御文字と印字可能文字

0〜127は、性質によって大きく2つに分かれます。

  • 制御文字(0〜31と127):画面に形として表示されない、機器やソフトの動作を指示するための番号です。代表例は、改行のLF(10)、復帰のCR(13)、水平タブのHT(9)、警告音のBEL(7)、そして削除のDEL(127)です。文書の見た目ではなく「振る舞い」を担います。
  • 印字可能文字(32〜126):目に見える文字です。32はスペース(空白)で、33以降に記号・数字・アルファベットが並びます。

本ツールの早見表では、制御文字にはNUL・HT・LF・CRといった略号と短い意味を添えて表示し、印字可能文字はその文字そのものを示します。「印字可能文字のみ(32〜126)」のチェックを使えば、制御文字を隠して見通しよく確認できます。

10進・16進・2進の対応を読み解く

同じ1つの番号でも、書き表す基数によって見た目が変わります。開発の現場では10進のほか、16進と2進が頻繁に登場します。具体例で確認しましょう。

  • 大文字のA は 65。16進では0x41、2進では1000001です。65は64+1なので、2進で7桁目と1桁目が立つ1000001になり、16進では4×16+1=65で0x41です。
  • 小文字のa は 97、16進で0x61、2進で1100001。
  • 数字の文字「0」は 48、16進で0x30。数字1〜9はそこから連番で、「9」は57です。文字の「0」と数値の0が別物である点に注意してください。

ここで重要な規則があります。大文字と小文字の差はつねに32です(97−65=32、つまり0x20の差)。だから「AとZ」「aとz」がそれぞれ連続して並び、ビットで見ると大文字・小文字は上位側の1ビットだけが異なります。アルファベットも数字も番号が連続しているため、範囲判定や文字種の分類がビット演算・大小比較だけで手軽に書けるのです。2進表示は7ビットが本来ですが、桁をそろえて読みやすくするため、本ツールでは8桁(例:01000001)で表示しています。

改行コードLF(10)とCR(13)— OSによる違い

制御文字の中でもつまずきやすいのが改行です。改行に関わるコードは2つあり、LF(Line Feed=10、0x0A)は「次の行へ送る」、CR(Carriage Return=13、0x0D)は「行の先頭へ戻す」という、もともとタイプライター由来の別々の動作を表します。

  • Linux・macOS(現行):改行はLFのみ(1バイト)。
  • Windows:改行はCRとLFの2つを続けたCR+LF(2バイト)。
  • 古いMac(Mac OS 9以前):CRのみ。

この違いは、テキストファイルを別のOSでやり取りしたときに「余分な改行が入る」「1行に潰れて表示される」といったトラブルの原因になります。データ処理でファイルを行単位に分割するときは、LFだけを想定していると末尾にCR(0x0D)が残ることがあるため、前処理でCRを取り除くと安定します。本ツールの「文字列→コード列」では、入力欄の改行もコード10(LF)として出力されるので、目に見えない改行がどのコードとして扱われるかをその場で確認できます。

ASCIIとUnicode・UTF-8の関係

ASCIIは128文字しか定めていないため、日本語や絵文字は表せません。世界中の文字を扱うために作られたのがUnicodeで、各文字に「コードポイント」という番号を与えます。その番号を実際のバイト列に落とし込む方式の一つがUTF-8です。

UTF-8の優れた点は、先頭の128個(0〜127)がASCIIと完全に一致することです。つまりアルファベットや数字だけのテキストは、ASCIIとして読んでもUTF-8として読んでも同じバイト列になり、Aは常に1バイトの0x41です。日本語などは2〜4バイトで表され、その各バイトは最上位ビットが立つためASCIIの1バイト文字と衝突しません。ASCIIが上半分を空けておいた設計がここで生き、その知識はそのままUTF-8時代のプログラミングでも通用します。

本ツールの使い方とよくある疑問

早見表は、調べたい文字や番号を検索欄に入力して絞り込めます。10進・16進・文字・制御文字の名称(LFなど)で検索でき、各行で10進・16進・8進・2進・文字・意味を一度に確認できます。文字列とコード列は双方向に変換でき、出力の基数(10進・16進・2進)や入力の基数を選べます。すべてブラウザ内で完結し、入力内容が外部に送信されることはありません。

なお本ツールはASCII(0〜127)専用です。日本語・全角記号・絵文字などASCII範囲外の文字は変換対象から除外し、その旨を注記します。それらのコードポイントやUTF-8バイト列を調べたい場合は、姉妹ツールの「文字コード変換」が適しています。スペースは32、水平タブは9、改行(LF)は10というように、目に見えない文字の番号も早見表と変換で確かめられるので、開発やデータ整形の合間の確認に役立ててください。

「ASCIIコード表・変換」を使ってみる →

ほかの記事

Unicode正規化ガイド|NFC/NFD/NFKC/NFKDの違いと使い分け Base58/Base32/Base16変換の仕組みガイド|なぜ0OIlを除くのか cubic-bezierイージング入門|4つの数値と制御点の意味を図解 文字化けを直す仕組み|バイトに戻して再デコードする復元の考え方 ULIDとは何か|26文字で時系列ソートできるIDの仕組みと使い分け ISBN変換・チェックの使い方|10桁と13桁の相互変換とチェックデジットの仕組み

記事一覧をすべて見る →