プログラミングの基礎で必ず登場するASCIIコードを、初心者でも迷わず使えるように整理しました。
10進と16進の対応、制御文字から英数字・記号まで、現場で役立つ早見表と変換のコツをまとめています。
UTF-8との関係や注意点も丁寧に解説します。
ASCIIコードとは?基本と使い方
ASCIIコードの基礎(文字コードの入門)
ASCIIコードは、文字を数値に対応づけるための最も基本的な規格です。
アメリカで策定された7ビットの文字集合で、英字や数字、記号に加え、改行やタブなどの制御文字が含まれます。
コンピュータは文字をそのまま扱うのではなく、内部では必ず数値として扱います。
例えば文字Aは10進で65、16進で0x41です。
文字コードの考え方は単純で、ある文字に一意の数値を割り当てる対応表だと理解すると分かりやすいです。
これにより、機器やOSの違いを越えて、同じ文字を同じ数値でやり取りできます。
どんな場面で使うか(プログラミング/データ交換)
プログラミングでは、文字列処理や入出力、ファイルやネットワークのプロトコルなど、あらゆる場面でASCIIコードの知識が役立ちます。
特に改行コードやタブ、スペースの扱いは、見えない文字なので不具合の原因になりやすく、正しいコード値の確認が重要です。
データ交換では、CSVやJSONなどのテキスト形式、HTTPやSMTPのようなプロトコルがCRLFなどのASCII制御文字に依存しています。
初心者の方は、まず英数字と基本記号の範囲、そして改行やタブのコードを覚えておくと実務で困りません。
ASCIIの範囲(0〜127の7ビット)
ASCIIは0〜127の7ビットで構成され、内訳は以下の通りです。
- 0〜31: 制御文字(印字不可)
- 32〜126: 印字可能文字(スペース、記号、数字、英字)
- 127: DEL(削除、特殊用途)
なお、128以上の値はASCIIの範囲外です。
128以上はASCIIではなく、別の文字コードや拡張集合に属します。
ASCIIコード表(早見表)10進/16進/記号一覧
制御文字一覧(00〜1F)
制御文字は表示されない制御用のコードです。
改行やタブ、通信制御などに使われます。
| 10進 | 16進 | 略称 | 名称/用途 |
|---|---|---|---|
| 0 | 00 | NUL | Null(空文字、終端など) |
| 1 | 01 | SOH | Start of Heading |
| 2 | 02 | STX | Start of Text |
| 3 | 03 | ETX | End of Text |
| 4 | 04 | EOT | End of Transmission |
| 5 | 05 | ENQ | Enquiry(問い合わせ) |
| 6 | 06 | ACK | Acknowledge(受信確認) |
| 7 | 07 | BEL | Bell(ベル、警告音) |
| 8 | 08 | BS | Backspace(後退) |
| 9 | 09 | HT | Horizontal Tab(水平タブ) |
| 10 | 0A | LF | Line Feed(改行) |
| 11 | 0B | VT | Vertical Tab(垂直タブ) |
| 12 | 0C | FF | Form Feed(改ページ) |
| 13 | 0D | CR | Carriage Return(復帰) |
| 14 | 0E | SO | Shift Out |
| 15 | 0F | SI | Shift In |
| 16 | 10 | DLE | Data Link Escape |
| 17 | 11 | DC1 | Device Control 1(XONで使われることがある) |
| 18 | 12 | DC2 | Device Control 2 |
| 19 | 13 | DC3 | Device Control 3(XOFFで使われることがある) |
| 20 | 14 | DC4 | Device Control 4 |
| 21 | 15 | NAK | Negative Acknowledge(受信失敗) |
| 22 | 16 | SYN | Synchronous Idle |
| 23 | 17 | ETB | End of Transmission Block |
| 24 | 18 | CAN | Cancel |
| 25 | 19 | EM | End of Medium |
| 26 | 1A | SUB | Substitute(置換、欠損の代替) |
| 27 | 1B | ESC | Escape(エスケープ) |
| 28 | 1C | FS | File Separator |
| 29 | 1D | GS | Group Separator |
| 30 | 1E | RS | Record Separator |
| 31 | 1F | US | Unit Separator |
スペース/タブ/改行のコード
改行はOSやプロトコルごとに使い分けがあります。
WindowsはCRLF、LinuxやmacOSはLFのみが一般的です。
| 名称 | 10進 | 16進 | 表示例 | 備考 |
|---|---|---|---|---|
| Space | 32 | 20 | ␠ | スペース1文字 |
| Tab(HT) | 9 | 09 | ␉ | 水平タブ |
| LF | 10 | 0A | ␊ | 改行(Linux/macOSの改行) |
| CR | 13 | 0D | ␍ | 復帰(古いMacの改行) |
| CRLF | 13 10 | 0D 0A | ␍␊ | Windowsの改行(2バイトの並び) |
数字(0〜9)
数字は必ず48〜57の連番です。
0は48、9は57です。
| 文字 | 10進 | 16進 |
|---|---|---|
| 0 | 48 | 30 |
| 1 | 49 | 31 |
| 2 | 50 | 32 |
| 3 | 51 | 33 |
| 4 | 52 | 34 |
| 5 | 53 | 35 |
| 6 | 54 | 36 |
| 7 | 55 | 37 |
| 8 | 56 | 38 |
| 9 | 57 | 39 |
英大文字(A〜Z)
大文字Aは65(0x41)、Zは90(0x5A)です。
| 文字 | 10進 | 16進 |
|---|---|---|
| A | 65 | 41 |
| B | 66 | 42 |
| C | 67 | 43 |
| D | 68 | 44 |
| E | 69 | 45 |
| F | 70 | 46 |
| G | 71 | 47 |
| H | 72 | 48 |
| I | 73 | 49 |
| J | 74 | 4A |
| K | 75 | 4B |
| L | 76 | 4C |
| M | 77 | 4D |
| N | 78 | 4E |
| O | 79 | 4F |
| P | 80 | 50 |
| Q | 81 | 51 |
| R | 82 | 52 |
| S | 83 | 53 |
| T | 84 | 54 |
| U | 85 | 55 |
| V | 86 | 56 |
| W | 87 | 57 |
| X | 88 | 58 |
| Y | 89 | 59 |
| Z | 90 | 5A |
英小文字(a〜z)
小文字aは97(0x61)、zは122(0x7A)です。
| 文字 | 10進 | 16進 |
|---|---|---|
| a | 97 | 61 |
| b | 98 | 62 |
| c | 99 | 63 |
| d | 100 | 64 |
| e | 101 | 65 |
| f | 102 | 66 |
| g | 103 | 67 |
| h | 104 | 68 |
| i | 105 | 69 |
| j | 106 | 6A |
| k | 107 | 6B |
| l | 108 | 6C |
| m | 109 | 6D |
| n | 110 | 6E |
| o | 111 | 6F |
| p | 112 | 70 |
| q | 113 | 71 |
| r | 114 | 72 |
| s | 115 | 73 |
| t | 116 | 74 |
| u | 117 | 75 |
| v | 118 | 76 |
| w | 119 | 77 |
| x | 120 | 78 |
| y | 121 | 79 |
| z | 122 | 7A |
記号一覧(!”#$%&'()*+,-./:;<=>?@[]^_`{|}~)
記号は複数のブロックに分散しています。
埋め込みやエスケープが必要な文字に注意してください。
| 文字 | 10進 | 16進 | 説明 |
|---|---|---|---|
| ! | 33 | 21 | Exclamation mark |
| “ | 34 | 22 | Quotation mark |
| # | 35 | 23 | Number sign |
| $ | 36 | 24 | Dollar sign |
| % | 37 | 25 | Percent |
| & | 38 | 26 | Ampersand |
| ‘ | 39 | 27 | Apostrophe |
| ( | 40 | 28 | Left parenthesis |
| ) | 41 | 29 | Right parenthesis |
| * | 42 | 2A | Asterisk |
| + | 43 | 2B | Plus |
| , | 44 | 2C | Comma |
| – | 45 | 2D | Hyphen-minus |
| . | 46 | 2E | Period |
| / | 47 | 2F | Slash |
| : | 58 | 3A | Colon |
| ; | 59 | 3B | Semicolon |
| < | 60 | 3C | Less-than |
| = | 61 | 3D | Equals |
| > | 62 | 3E | Greater-than |
| ? | 63 | 3F | Question mark |
| @ | 64 | 40 | At sign |
| [ | 91 | 5B | Left square bracket |
| \ | 92 | 5C | Backslash |
| ] | 93 | 5D | Right square bracket |
| ^ | 94 | 5E | Caret |
| _ | 95 | 5F | Underscore |
| ` | 96 | 60 | Grave accent(backtick) |
| { | 123 | 7B | Left curly brace |
| | | 124 | 7C | Vertical bar(pipe) |
| } | 125 | 7D | Right curly brace |
| ~ | 126 | 7E | Tilde |
DEL(削除 7F)
DELは127(0x7F)の制御コードで、元来は紙テープの穴を全て開けて削除を表す用途でした。
現代では特別な制御目的で使われることがありますが、通常のテキスト中で用いることはほとんどありません。
10進と16進の読み方・変換のコツ
10進⇔16進の考え方(桁と範囲)
16進数は0〜9とA〜Fの16種類の桁を使う表記です。
1桁は4ビットを表すため、2桁で1バイト(8ビット)を表現できます。
ASCIIは7ビットなので、最大値は127で16進では0x7Fです。
- 例: 10進65は16進
0x41、10進97は0x61。 - 32は
0x20でスペース、126は0x7Eでチルダです。
よく使う対応例
理解を助けるため、頻出の文字をまとめます。
| 文字 | 10進 | 16進 |
|---|---|---|
| Space | 32 | 20 |
| 0 | 48 | 30 |
| 9 | 57 | 39 |
| A | 65 | 41 |
| Z | 90 | 5A |
| a | 97 | 61 |
| z | 122 | 7A |
| ~ | 126 | 7E |
電卓で変換する方法(Windows/Mac)
OS標準の電卓はプログラマーモードで10進と16進を即座に切り替えできます。
- Windows: 電卓を起動し、メニューから「プログラマ」を選びます。Decに65と入力してHexをクリックすると
41が表示されます。逆にHexに41と入れればDecに65が出ます。 - macOS: 電卓を起動し、メニュー「表示」から「プログラマ」を選びます。10進と16進の表示を切り替えながら同様に確認できます。
標準電卓は「文字」そのものの入力からコードへ直接変換する機能は乏しいことがあります。
文字から数値を得たい場合は、後述のオンラインツールやエディタ機能を併用してください。
オンライン変換ツールの使い方
「ascii converter」や「ascii table」で検索すると、文字を入力して10進・16進を同時表示するツールが見つかります。
使い方は簡単で、入力欄に文字を打つと、その文字のコードが即時に表示されます。
複数文字を入れれば、各文字のコード一覧が出るものもあります。
セキュリティのため、機密テキストをWebツールに貼り付けないのが基本です。
検証には記号や英数字など公開可能な文字で試すと安心です。
ASCIIコードの調べ方と注意点(初心者向け)
テキストエディタでコードを確認する
エディタの拡張機能や可視化機能を使うと、見えない文字を確認できます。
- Visual Studio Code: 拡張機能「Hex Editor」を使うと、開いたファイルの各バイトを16進で表示できます。また「レンダー空白文字」を有効にすると、スペースやタブ、改行記号が視覚化されます。
- 目視の確認に加え、コマンドが使える方は
printf 'A' | hexdump -C(Linux/macOS)やpowershell -NoProfile -Command "[int][char]'A'"(Windows PowerShell)のような方法で数値を得られます。
改行がCRLFかLFかは、GitやLintの設定で差が出やすい箇所です。
意図しない改行コードで差分が増えないよう、プロジェクトの規約に合わせて設定してください。
ASCIIとUTF-8の関係(ASCIIは共通部分)
UTF-8はASCIIの上位互換です。
ASCIIの0〜127はUTF-8でも同じ1バイト値で表現されます。
つまり、文字AはASCIIでもUTF-8でも0x41です。
一方、日本語やアクセント付き文字などASCIIにない文字は、UTF-8で2〜4バイトの並びになります。
例:
- A → UTF-8では
41 - あ → UTF-8では
E3 81 82(3バイト)
この性質により、英数字と基本記号のみのテキストはどの環境でも崩れにくいという利点があります。
拡張ASCIIに注意(128以上は別扱い)
「拡張ASCII」という言い方は厳密には標準ではなく、実体は複数の別規格です。
例えばISO-8859-1(Latin-1)やWindows-1252などで、128〜255の範囲が互いに異なります。
同じ0x93がある環境では「スマートクォート」、別の環境では「制御文字」と解釈されることもあります。
128以上のバイト値をASCIIとして前提にしないのが正解です。
混乱を避けるため、UTF-8に統一し、入出力のエンコーディングを明示する習慣をつけましょう。
まとめ
本記事では、ASCIIの基礎から実務で使える早見表、10進と16進の変換、UTF-8との関係や注意点までを一通り解説しました。
まずはスペース0x20、改行LF 0x0AとCR 0x0D、数字0x30〜0x39、英字0x41〜0x5Aと0x61〜0x7Aを押さえれば、多くの場面で迷いません。
ASCIIは小さくて強力な基礎知識です。
早見表を手元に置き、電卓やエディタの機能と併用して、文字とバイトの対応を確実に扱えるように練習してみてください。
