プログラミングを学び始めた方が、最短で正しく文字コードを扱えるように、ASCIIの基本と早見表、制御文字やエスケープ表記、そして実務で役立つ覚え方を整理しました。
10進と16進の対応や記号の一覧を一度に確認できる保存版として活用してください。
ASCIIコードとは

ASCIIはコンピュータの最も基本的な文字集合の1つで、英数字と記号、制御文字を7ビットで表す規格です。
多くのプログラミング言語やプロトコルの基礎であり、UnicodeやUTF-8でも先頭128文字はASCIIと同一の値を取ります。
7ビットの範囲と基本
ASCIIは7ビットで0〜127の範囲を定義します。
内訳は、0〜31と127が制御文字、32〜126が印字可能文字です。
印字可能文字には空白(スペース)や数字、英大文字・小文字、句読点や演算子などの記号が含まれます。
実装上は1バイト(8ビット)で保持されますが、上位1ビットは未使用です。
10進と16進の読み方
プログラミングでは、ASCII値を10進と16進で頻繁に扱います。
たとえば文字Aは10進で65、16進で0x41です。
慣例として16進は0xプレフィックスを付けて表記します。
数字の0は10進で48、16進で0x30、改行LFは10進で10、16進で0x0Aと覚えると実務で素早く判断できます。
ASCIIと拡張ASCIIの違い
ASCIIの定義は0〜127のみです。
128〜255の領域は「拡張ASCII」と俗に呼ばれますが国際規格ではありません。
ISO-8859-1やWindows-1252など複数の文字集合が存在し、同じ数値でも文字が異なることがあります。
したがって、0〜127は世界共通で安全、128以上は文字コード系の前提を必ず確認する、という姿勢が重要です。
ASCIIコード表 早見表(10進/16進/文字)
以下は印字可能文字の一覧と、数字・英字・記号の部分表です。
プログラムのデバッグやデータ解析時に参照してください。
印字可能文字一覧
10進/16進/文字の対応表です。
特殊な文字は説明欄も併記しています。
10進 | 16進 | 文字 | 説明 |
---|---|---|---|
32 | 0x20 | 空白(space) | |
33 | 0x21 | ! | 感嘆符 |
34 | 0x22 | “ | 二重引用符 |
35 | 0x23 | # | シャープ |
36 | 0x24 | $ | ドル |
37 | 0x25 | % | パーセント |
38 | 0x26 | & | アンパサンド |
39 | 0x27 | ‘ | アポストロフィ |
40 | 0x28 | ( | 左丸括弧 |
41 | 0x29 | ) | 右丸括弧 |
42 | 0x2A | * | アスタリスク |
43 | 0x2B | + | プラス |
44 | 0x2C | , | カンマ |
45 | 0x2D | – | ハイフン |
46 | 0x2E | . | ドット |
47 | 0x2F | / | スラッシュ |
48 | 0x30 | 0 | 数字0 |
49 | 0x31 | 1 | 数字1 |
50 | 0x32 | 2 | 数字2 |
51 | 0x33 | 3 | 数字3 |
52 | 0x34 | 4 | 数字4 |
53 | 0x35 | 5 | 数字5 |
54 | 0x36 | 6 | 数字6 |
55 | 0x37 | 7 | 数字7 |
56 | 0x38 | 8 | 数字8 |
57 | 0x39 | 9 | 数字9 |
58 | 0x3A | : | コロン |
59 | 0x3B | ; | セミコロン |
60 | 0x3C | < | 小なり |
61 | 0x3D | = | 等号 |
62 | 0x3E | > | 大なり |
63 | 0x3F | ? | クエスチョン |
64 | 0x40 | @ | アット |
65 | 0x41 | A | 英大文字 |
66 | 0x42 | B | |
67 | 0x43 | C | |
68 | 0x44 | D | |
69 | 0x45 | E | |
70 | 0x46 | F | |
71 | 0x47 | G | |
72 | 0x48 | H | |
73 | 0x49 | I | |
74 | 0x4A | J | |
75 | 0x4B | K | |
76 | 0x4C | L | |
77 | 0x4D | M | |
78 | 0x4E | N | |
79 | 0x4F | O | |
80 | 0x50 | P | |
81 | 0x51 | Q | |
82 | 0x52 | R | |
83 | 0x53 | S | |
84 | 0x54 | T | |
85 | 0x55 | U | |
86 | 0x56 | V | |
87 | 0x57 | W | |
88 | 0x58 | X | |
89 | 0x59 | Y | |
90 | 0x5A | Z | |
91 | 0x5B | [ | 左角括弧 |
92 | 0x5C | \ | バックスラッシュ |
93 | 0x5D | ] | 右角括弧 |
94 | 0x5E | ^ | カレット |
95 | 0x5F | _ | アンダースコア |
96 | 0x60 | ` | グレイヴアクセント |
97 | 0x61 | a | 英小文字 |
98 | 0x62 | b | |
99 | 0x63 | c | |
100 | 0x64 | d | |
101 | 0x65 | e | |
102 | 0x66 | f | |
103 | 0x67 | g | |
104 | 0x68 | h | |
105 | 0x69 | i | |
106 | 0x6A | j | |
107 | 0x6B | k | |
108 | 0x6C | l | |
109 | 0x6D | m | |
110 | 0x6E | n | |
111 | 0x6F | o | |
112 | 0x70 | p | |
113 | 0x71 | q | |
114 | 0x72 | r | |
115 | 0x73 | s | |
116 | 0x74 | t | |
117 | 0x75 | u | |
118 | 0x76 | v | |
119 | 0x77 | w | |
120 | 0x78 | x | |
121 | 0x79 | y | |
122 | 0x7A | z | |
123 | 0x7B | { | 左波括弧 |
124 | 0x7C | | | 縦棒(パイプ) |
125 | 0x7D | } | 右波括弧 |
126 | 0x7E | ~ | チルダ |
補足
- 92のバックスラッシュは多くの言語でエスケープ記号として使われます。表示や入力の際は注意してください。
- 124の縦棒はシェルや正規表現などで意味を持つため、文脈により特別な扱いになることがあります。
数字0〜9のコード
連続範囲で覚えると便利です。
先頭は48(0x30)です。
10進 | 16進 | 文字 |
---|---|---|
48 | 0x30 | 0 |
49 | 0x31 | 1 |
50 | 0x32 | 2 |
51 | 0x33 | 3 |
52 | 0x34 | 4 |
53 | 0x35 | 5 |
54 | 0x36 | 6 |
55 | 0x37 | 7 |
56 | 0x38 | 8 |
57 | 0x39 | 9 |
英大文字A〜Zのコード
こちらも連続で、先頭は65(0x41)です。
10進 | 16進 | 文字 |
---|---|---|
65 | 0x41 | A |
66 | 0x42 | B |
67 | 0x43 | C |
68 | 0x44 | D |
69 | 0x45 | E |
70 | 0x46 | F |
71 | 0x47 | G |
72 | 0x48 | H |
73 | 0x49 | I |
74 | 0x4A | J |
75 | 0x4B | K |
76 | 0x4C | L |
77 | 0x4D | M |
78 | 0x4E | N |
79 | 0x4F | O |
80 | 0x50 | P |
81 | 0x51 | Q |
82 | 0x52 | R |
83 | 0x53 | S |
84 | 0x54 | T |
85 | 0x55 | U |
86 | 0x56 | V |
87 | 0x57 | W |
88 | 0x58 | X |
89 | 0x59 | Y |
90 | 0x5A | Z |
英小文字a〜zのコード
先頭は97(0x61)で、こちらも連続です。
10進 | 16進 | 文字 |
---|---|---|
97 | 0x61 | a |
98 | 0x62 | b |
99 | 0x63 | c |
100 | 0x64 | d |
101 | 0x65 | e |
102 | 0x66 | f |
103 | 0x67 | g |
104 | 0x68 | h |
105 | 0x69 | i |
106 | 0x6A | j |
107 | 0x6B | k |
108 | 0x6C | l |
109 | 0x6D | m |
110 | 0x6E | n |
111 | 0x6F | o |
112 | 0x70 | p |
113 | 0x71 | q |
114 | 0x72 | r |
115 | 0x73 | s |
116 | 0x74 | t |
117 | 0x75 | u |
118 | 0x76 | v |
119 | 0x77 | w |
120 | 0x78 | x |
121 | 0x79 | y |
122 | 0x7A | z |
記号のコード一覧
英数字以外の主要記号をまとめました。
シェルや正規表現、プログラム内の演算子として特別な意味を持つものが多いため、コード値とともに文字自体の扱いにも注意が必要です。
10進 | 16進 | 文字 | 名称 |
---|---|---|---|
33 | 0x21 | ! | 感嘆符 |
34 | 0x22 | “ | 二重引用符 |
35 | 0x23 | # | シャープ |
36 | 0x24 | $ | ドル |
37 | 0x25 | % | パーセント |
38 | 0x26 | & | アンパサンド |
39 | 0x27 | ‘ | アポストロフィ |
40 | 0x28 | ( | 左丸括弧 |
41 | 0x29 | ) | 右丸括弧 |
42 | 0x2A | * | アスタリスク |
43 | 0x2B | + | プラス |
44 | 0x2C | , | カンマ |
45 | 0x2D | – | ハイフン |
46 | 0x2E | . | ドット |
47 | 0x2F | / | スラッシュ |
58 | 0x3A | : | コロン |
59 | 0x3B | ; | セミコロン |
60 | 0x3C | < | 小なり |
61 | 0x3D | = | イコール |
62 | 0x3E | > | 大なり |
63 | 0x3F | ? | クエスチョン |
64 | 0x40 | @ | アット |
91 | 0x5B | [ | 左角括弧 |
92 | 0x5C | \ | バックスラッシュ |
93 | 0x5D | ] | 右角括弧 |
94 | 0x5E | ^ | カレット |
95 | 0x5F | _ | アンダースコア |
96 | 0x60 | ` | グレイヴ |
123 | 0x7B | { | 左波括弧 |
124 | 0x7C | | | パイプ |
125 | 0x7D | } | 右波括弧 |
126 | 0x7E | ~ | チルダ |
制御文字一覧とエスケープ表記
制御文字は表示されない動作制御用のコードで、テキストの整形や通信制御に使われます。
プログラムではエスケープ表記を併用することで可読性を保ちます。
制御コード(0〜31,127)
代表的な略称、用途、エスケープ表記をまとめます。
エスケープはC系言語の慣習に準じます。
10進 | 16進 | 略称 | 名称 | 代表的なエスケープ |
---|---|---|---|---|
0 | 0x00 | NUL | ヌル | \0 |
1 | 0x01 | SOH | 見出し開始 | なし |
2 | 0x02 | STX | テキスト開始 | なし |
3 | 0x03 | ETX | テキスト終了 | なし |
4 | 0x04 | EOT | 伝送終了 | なし |
5 | 0x05 | ENQ | 問い合わせ | なし |
6 | 0x06 | ACK | 受信確認 | なし |
7 | 0x07 | BEL | ベル | \a |
8 | 0x08 | BS | バックスペース | \b |
9 | 0x09 | HT | 水平タブ | \t |
10 | 0x0A | LF | 改行 | \n |
11 | 0x0B | VT | 垂直タブ | \v |
12 | 0x0C | FF | 改ページ | \f |
13 | 0x0D | CR | 復帰 | \r |
14 | 0x0E | SO | シフトアウト | なし |
15 | 0x0F | SI | シフトイン | なし |
16 | 0x10 | DLE | データリンクエスケープ | なし |
17 | 0x11 | DC1 | デバイス制御1(XON) | なし |
18 | 0x12 | DC2 | デバイス制御2 | なし |
19 | 0x13 | DC3 | デバイス制御3(XOFF) | なし |
20 | 0x14 | DC4 | デバイス制御4 | なし |
21 | 0x15 | NAK | 否定応答 | なし |
22 | 0x16 | SYN | 同期アイドル | なし |
23 | 0x17 | ETB | 伝送ブロック終端 | なし |
24 | 0x18 | CAN | キャンセル | なし |
25 | 0x19 | EM | 媒体終端 | なし |
26 | 0x1A | SUB | サブスティチュート | なし |
27 | 0x1B | ESC | エスケープ | \x1B または \e |
28 | 0x1C | FS | ファイル区切り | なし |
29 | 0x1D | GS | グループ区切り | なし |
30 | 0x1E | RS | レコード区切り | なし |
31 | 0x1F | US | ユニット区切り | なし |
127 | 0x7F | DEL | デリート | なし |
注記として、\e
は多くの処理系で使えますが標準Cの正式エスケープではありません。
移植性が必要な場合は16進の\x1B
を使うと安全です。
改行LFと復帰CR
改行は歴史的に2種類あります。
LF(Line Feed, 10)は行送り、CR(Carriage Return, 13)は行頭へ戻る動作です。
Unix系ではLFのみ、WindowsではCR+LFの2文字、古いMac OSではCRのみが採用されました。
この違いはテキストファイルの相互運用で問題になりやすいため、ファイル入出力やネットワークプロトコルの扱いでは明示的に指定することが重要です。
TAB ESC DELのコード
TABはHT(9)で水平タブを表し、インデントや列揃えに使われます。
VT(11)は垂直タブで現在ではほとんど使われません。
ESC(27)はターミナル制御の開始文字として、例えばANSIエスケープシーケンスの導入に用いられます。
DEL(127)は紙テープ時代の削除用で、現在は独自の動作を割り当てないのが一般的です。
キーボードのDeleteキーはOSやアプリがBackspaceと別の操作として処理しますが、ASCIIのDELとは必ずしも一致しません。
エスケープ表記(\n \r \t エスケープ表記(\n \r \t \0 \xHH)
\xHH)
プログラミング言語では、制御文字を見やすく文字列内に書くためにエスケープ表記を使います。
代表的なものは次のとおりです。
\n
はLF(10)、\r
はCR(13)、\t
はHT(9)、\0
はNUL(0)を挿入します。
任意の値は16進で\xHH
、Unicodeは多くの言語で\uXXXX
形式も使えます。
C系での文字列終端はNULであるため、\0
を含む文字列の扱いには注意してください。
実務で役立つ覚え方とコツ
業務で素早く判断できるよう、よく使う値はパターンとして覚えると効率が上がります。
48は’0′ 65は’A’ 97は’a’
数字の先頭は48、英大文字の先頭は65、英小文字の先頭は97です。
10進と16進をセットで覚えると変換に強くなります。
具体例として、’0’は48(0x30)、’A’は65(0x41)、’a’は97(0x61)です。
プログラムでは、'0' + n
でn桁の数字文字、'A' + i
や'a' + i
でアルファベットを生成できます。
大文字と小文字の差は32
英字は大小で常に32(0x20)離れています。
つまり、'a' == 'A' + 32
が成り立ちます。
ビットでみると0x20のビットを反転させるだけで大小を切り替えられます。
CやC++ではc | 0x20
で大文字を小文字化、c & ~0x20
で小文字を大文字化できます(英字であることの判定は別途必要です)。
スペースは32 改行LFは10 CRは13
頻出の制御・空白は値ごと覚えるのが近道です。
空白スペースは32(0x20)で、印字可能文字の開始点でもあります。
LFは10(0x0A)、CRは13(0x0D)で、Windowsの改行はCR+LFの2バイトという点を常に意識しておくと、ログ解析やバイナリビューアでの確認、正規表現による処理がスムーズになります。
まとめ
ASCIIは0〜127の安定した共通基盤で、印字可能文字は32〜126、制御文字は0〜31と127です。
10進と16進を対で把握し、数字や英字の連続性、大小差32、空白32・LF10・CR13といった要点を押さえると、テキスト処理やプロトコル解析、エスケープの扱いが格段に楽になります。
拡張ASCIIは一様ではないため128以上は常に文字コード系を前提に確認し、必要に応じてUnicodeやUTF-8の知識と組み合わせて活用してください。