FE EXAM

ASCII(アスキーコード)

英数字や記号を7ビットの数値で表す最も基本的な文字コード

INTERACTIVE VISUALIZATION
10進
2進(7bit)
16進
A
10進数 (DEC)
65
2進数 (BIN・7bit)
1000001
16進数 (HEX)
0x41
ビット内訳(7ビット)
1
64
0
32
0
16
0
8
0
4
0
2
1
1
文字を入力(A-Z, a-z, 0-9, 記号)
最後に入力したASCII文字のコードを表示します
コード(10進)でも指定65
32126
代表的な文字
ASCIIコード表(クリックで逆引き)
数字大文字小文字記号
解説

📌
ASCIIとは

文字 ↔ 数値(コード)の対応表A文字65 (10進)1000001 (2進)同じ文字は世界中で同じコード

ASCII(アスキー)=American Standard Code for Information Interchange の略で、英数字や記号といった文字を「数値(コード)」に対応づける決まりです。コンピュータは内部ですべてを0と1の数値で扱うため、文字をそのまま記憶することはできません。そこで「A は 65 番」「a は 97 番」のように、文字に背番号を割り当てた一覧表がASCIIです。

身近な例で言うと、図書館の本に付いている請求記号に似ています。本(文字)そのものは長くて扱いづらいので、棚の場所を表す短い番号(コード)で管理する──ASCIIも文字を番号で扱う仕組みです。世界共通の番号を使うことで、ある人が作った文章を別のコンピュータでも同じように読めます。

上のツールで文字を入力すると、その文字のASCIIコードが10進2進16進の3通りで表示されます。コード表のマスをクリックすれば、逆に「この番号はどの文字か」も確かめられます。

🔢
7ビットで128文字

7個のビット → 2の7乗 = 128通り16403201608040201各ビットは0か1 → 7個で 0〜127 を表せる

ASCIIは7ビット(=0か1が7個)で1文字を表します。ビットが7個あると組み合わせは 27 = 128 通りになるため、0番から127番までの128文字を表現できます。これがASCIIで扱える文字の総数です。

128文字の内訳は大きく次のように分かれています。
0〜31番・127番(制御文字):改行(LF)やタブ(HT)など、画面に文字としては表示されない制御用のコード
32番(空白)〜126番:実際に目に見える文字。記号・数字・英大文字・英小文字
数字 0〜9 は 48〜57番大文字 A〜Z は 65〜90番小文字 a〜z は 97〜122番と連続して並ぶ

覚えておくと便利なのが「大文字と小文字のコードは32だけ違う」という性質です。A=65 に対して a=97(=65+32)。だから大文字を小文字に変えるには「コードに32を足す」だけで済みます。文字は連番なので、'5' のコード = '0'のコード + 5 のように計算で求められる点も特徴です。

⚖️
拡張ASCIIとの違い

標準のASCIIは7ビットですが、コンピュータが1文字を扱う単位は 1バイト=8ビットです。つまり1ビット余ります。この余った8ビット目(128〜255番)を使って文字を増やしたものを拡張ASCII(8ビットASCII)と呼びます。

標準ASCII拡張ASCII
ビット数7ビット8ビット
文字数128文字256文字
追加分アクセント付き文字・罫線・記号など

拡張ASCIIの最大の問題は「追加した128文字の中身が国や規格ごとにバラバラ」という点です。同じ200番でも、ある規格では「é」、別の規格では「┐(罫線)」を表すなど統一されていません。これが文字化けの原因になります。

さらに、ASCIIや拡張ASCIIでは日本語(ひらがな・漢字)は表せません。256文字では数千〜数万ある漢字を収めきれないからです。そこで日本語用にShift_JISやEUC、世界中の文字を1つにまとめたUnicode(UTF-8など)が登場しました。ASCIIはそれらすべての土台であり、UTF-8では0〜127番がASCIIとまったく同じになっています。

関連コンテンツ