インクジェットプリンターのKGK紀州技研工業 
『より詳しい文字コードの話』

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 ~
1 SDH DC1 SOS        
2 STX DC2 FS SYM  
3 ETX TM    
4 PF RES BYP PN
5 HT NL LF RS  
6 LC BS ETB UC
7 DEL IL ESC EOT  
8   CAN    
9   EM      
A SMM CC SM            
B VT CU1 CU2 CU3        
C FF IFS   DC4          
D CR IGS ENQ NAK _        
E SO IRS ACK          
F SI IUS BEL SUB     °