技術情報
ASCIIコード
コンピュータが読み書きする文章は基本的に一連の「文字コード」のつらなりです。
文字コードはコンピュータの内部では1~2バイトの二進数として保存されています。二進数のままではわかりにくいので、普通は二進数4桁を「十六進数」として以下の表のように表すことが多くなります。
十六進数 | 二進数4桁 | 十六進数 | 二進数4桁 |
---|---|---|---|
0 | 0000 | 8 | 1000 |
1 | 0001 | 9 | 1001 |
2 | 0010 | A | 1010 |
3 | 0011 | B | 1011 |
4 | 0100 | C | 1100 |
5 | 0101 | D | 1101 |
6 | 0110 | E | 1110 |
7 | 0111 | F | 1111 |
この十六進数を使って、十六進数二桁で8ビット=1バイトを表します。以降では”0x00~0xFF”と”0x”をつけて十六進数であることを表示します。
1バイト(8ビット)では十六進数二桁ですから、0x00から0xFFまで、16×16=256とおりの文字を表現できます。
下の表は上位4ビットを横に、下位4ビットを縦に並べ、それぞれの位置の8ビットを十六進数2桁で表示したものです。
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | A0 | B0 | C0 | D0 | E0 | F0 |
0001 | 01 | 11 | 21 | 31 | 41 | 51 | 61 | 71 | 81 | 91 | A1 | B1 | C1 | D1 | E1 | F1 |
0010 | 02 | 12 | 22 | 32 | 42 | 52 | 62 | 72 | 82 | 92 | A2 | B2 | C2 | D2 | E2 | F2 |
0011 | 03 | 13 | 23 | 33 | 43 | 53 | 63 | 73 | 83 | 93 | A3 | B3 | C3 | D3 | E3 | F3 |
0100 | 04 | 14 | 24 | 34 | 44 | 54 | 64 | 74 | 84 | 94 | A4 | B4 | C4 | D4 | E4 | F4 |
0101 | 05 | 15 | 25 | 35 | 45 | 55 | 65 | 75 | 85 | 95 | A5 | B5 | C5 | D5 | E5 | F5 |
0110 | 06 | 16 | 26 | 36 | 46 | 56 | 66 | 76 | 86 | 96 | A6 | B6 | C6 | D6 | E6 | F6 |
0111 | 07 | 17 | 27 | 37 | 47 | 57 | 67 | 77 | 87 | 97 | A7 | B7 | C7 | D7 | E7 | F7 |
1000 | 08 | 18 | 28 | 38 | 48 | 58 | 68 | 78 | 88 | 98 | A8 | B8 | C8 | D8 | E8 | F8 |
1001 | 09 | 19 | 29 | 39 | 49 | 59 | 69 | 79 | 89 | 99 | A9 | B9 | C9 | D9 | E9 | F9 |
1010 | 0A | 1A | 2A | 3A | 4A | 5A | 6A | 7A | 8A | 9A | AA | BA | CA | DA | EA | FA |
1011 | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | AB | BB | CB | DB | EB | FB |
1100 | 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | AC | BC | CC | DC | EC | FC |
1101 | 0D | 1D | 2D | 3D | 4D | 5D | 6D | 7D | 8D | 9D | AD | BD | CD | DD | ED | FD |
1110 | 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E | AE | BE | CE | DE | EE | FE |
1111 | 0F | 1F | 2F | 3F | 4F | 5F | 6F | 7F | 8F | 9F | AF | BF | CF | DF | EF | FF |
上の表の左半分は最上位のビットがすべて「0」ですので、7ビット(0000000~1111111)で表せる範囲になります。この範囲を使って、英数字・記号を表すのが、最もシンプルな7ビットの文字コード(ASCII)です。ここでは16×8=128とおりの文字を表せます。下の表をごらんください。
・0x00~0x1Fは「制御コード」で、フォントで表示できる文字コード以外に割り当てられています。
・0x20はSPACE(空白)です。21~7Eに英数字・記号を割当て、7Fは制御コードの「DEL」になります。
・ビットコードですので0x00から0x7Fを使用し、0x80~0xFFは使われていません。
・本当のASCIIコードでは「\」(0x5C)のところは「\(バックスラッシュ)」ですが、日本では円記号を割り当てています。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|---|
0 | NUL | DLE | SP | 0 | @ | P | ` | p |
1 | SOH | DC1 | ! | 1 | A | Q | a | q |
2 | STX | DC2 | “ | 2 | B | R | b | r |
3 | ETX | DC3 | # | 3 | C | S | c | s |
4 | EOT | DC4 | $ | 4 | D | T | d | t |
5 | EMQ | NAK | % | 5 | E | U | e | u |
6 | ACK | SYN | & | 6 | F | V | f | v |
7 | BEL | ETB | ‘ | 7 | G | W | g | w |
8 | BS | CAN | ( | 8 | H | X | h | x |
9 | HT | EM | ) | 9 | I | Y | i | y |
A | LF | SUB | * | : | J | Z | j | z |
B | VT | ESC | + | ; | K | [ | k | { |
C | FF | FS | , | < | L | \ | l | | |
D | CR | GS | – | = | M | ] | m | } |
E | SO | RS | . | > | N | ^ | n | ~ |
F | SI | US | / | ? | O | _ | o | DEL |
JIS X201
上記のコード表はASCIIそのものではなく、「\」を追加したJIS X 0201のものです。この規格ではさらにASCIIでは使用されていない0xA1~0xDFの領域にカタカナを割り当てています。
俗に「半角カナ」と呼ばれるこの文字コードの追加で、8ビットで英数字、記号とともにカタカナを表示できるようになりました。
初期のコンピュータの世界ではこれだけで日本語も表示していたのです。
0x80~0x9F、0xE0~0xFFは使用されていませんが、後にこの部分を利用して、漢字を表示するようになりました。
(→シフトJIS)
8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|
0 | ー | タ | ミ | |||||
1 | 。 | ア | チ | ム | ||||
2 | 「 | イ | ツ | メ | ||||
3 | 」 | ウ | テ | モ | ||||
4 | 、 | エ | ト | ヤ | ||||
5 | ・ | オ | ナ | ユ | ||||
6 | ヲ | カ | ニ | ヨ | ||||
7 | ァ | キ | ヌ | ラ | ||||
8 | ィ | ク | ネ | リ | ||||
9 | ゥ | ケ | ノ | ル | ||||
A | ェ | コ | ハ | レ | ||||
B | ォ | サ | ヒ | ロ | ||||
C | ャ | シ | フ | ワ | ||||
D | ュ | ス | ヘ | ン | ||||
E | ョ | セ | ホ | ゛ | ||||
F | ッ | ソ | マ | ° |
EBCDICコード
汎用機やオフコンなどの世界ではEBCDICと呼ばれる8ビットコードが使われています。
下の表はIBMのEBCDICカナコードです。本来のEBCDICで決められているのは数字、英大文字、記号のピンク色で表示した部分だけで、それ以外の英小文字、カナなどはメーカーによって違います。
空白(SPACE)が0x40に来ること、数字がF0~F9で英字より後にくること、英字が順に並んでいないことなどが特徴です。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NUL | DLE | DS | SP | & | - | [ | ] | ソ | ~ | ^ | { | } | $ | 0 | |
1 | SDH | DC1 | SOS | 。 | ェ | / | i | ア | タ | A | J | 1 | ||||
2 | STX | DC2 | FS | SYM | 「 | ォ | a | j | イ | チ | ヘ | B | K | S | 2 | |
3 | ETX | TM | 」 | ャ | b | k | ウ | ツ | ホ | t | C | L | T | 3 | ||
4 | PF | RES | BYP | PN | 、 | ュ | c | l | エ | テ | マ | u | D | M | U | 4 |
5 | HT | NL | LF | RS | ョ | d | m | オ | ト | ミ | v | E | N | V | 5 | |
6 | LC | BS | ETB | UC | ヲ | ッ | e | n | カ | ナ | ム | w | F | O | W | 6 |
7 | DEL | IL | ESC | EOT | ァ | f | o | キ | ニ | メ | x | G | P | X | 7 | |
8 | CAN | ィ | ー | g | p | ク | ヌ | モ | y | H | Q | Y | 8 | |||
9 | EM | ゥ | h | ` | ケ | ネ | ヤ | z | I | R | Z | 9 | ||||
A | SMM | CC | SM | ! | | | : | コ | ノ | ユ | レ | ||||||
B | VT | CU1 | CU2 | CU3 | . | ¥ | , | # | q | r | s | ロ | ||||
C | FF | IFS | DC4 | < | * | % | @ | サ | ヨ | ワ | ||||||
D | CR | IGS | ENQ | NAK | ( | ) | _ | ’ | シ | ハ | ラ | ン | ||||
E | SO | IRS | ACK | + | ; | > | = | ス | ヒ | リ | ゜ | |||||
F | SI | IUS | BEL | SUB | ? | ” | セ | フ | ル | ° |