2進数とコードの混同
アクセスカウンター アクセスカウンター アクセスカウンター
 

2進数とコードの混同

上智大学 伊藤 潔

 2005年9月2日  

 

コンピュータでは,01bit 「ビット」を複数並べて,その並べられたビット列をどのように読むかを用途毎に決めて,全ての情報を表しています.「数値は2進数で入っている」ということは,ほぼ正しいですが,「全ての情報は2進数で入っている」ということは必ずしも正しくありません.

 

進数や進法は,@数えるとき,1個で使う数の種類が限られている,A桁の概念があり,1個で数える量に足りなければ上の桁へ進んで,2個の桁で数える,という言葉です.例えば,10進数なら,数えるために使う数は,0, 1, , 8, 910個で,11個以上を数えるとき,上の桁(10の位,100の位,…)を使います.2進数なら,数えるために使う数は,0, 12個で,3個以上を数えるとき,上の桁(2の位,4の位,…)を使います.10進数の0, 1, 2, 3, 4は,2進数では,0, 1, 10, 11, 100です.数値ですから加減乗除の演算をするとき, 桁上げや桁下げがあります.

桁はdigitで,桁に0, 1, , 8, 910個が入るとき,decimal digit「10進桁」といいます.桁に0, 12個が入るとき,binary digit,略して,bit 「ビット」といいます.

 

コンピュータで数値を記憶しているとき,これは実際には様々な形態がありますが,数値は2進数で記憶されている,といってよいでしょう.演算もできます.

コンピュータに入る情報として,様々なコード(符号)があります.

その代表的なものに,character code 「文字コード」があります.これらも01を使います.でも,2進数ではありません.世界中の文字の個数は膨大です.それらをコンピュータ上で表すために,いろいろな方法,コードが用意されています.ここでは,それらを説明する目的ではないので,英語や日本語を表すコードについてのみ言及します.

 

英語のアルファベット26文字(大文字と小文字で倍)や数字,各種記号その他を表現するために,8個の01を通常並べます.これが,8ビットのISOコードASCIIコードJISコードです.1bit01だから,8bitなら,01の重複順列で,28乗,すなわち,256通りの情報,この場合は,文字の種類を表せます.そんなに文字の種類はないので,空欄もあります.

例えば,数字の09は,”0011 0000”, “0011 1001”,文字AZは,”0100 0001”, “0101 1010” 文字azは,”0110 0001”, “0111 1010”です.

変化する部分を順次見れば,2進数と見なせますが,8bit全体は,2進数ではありません.なぜなら,"数字には,頭に"0011",英大文字には,頭に"010",英子文字には,頭に"011"というのが付いています.数字の場合,このままでは加減乗除するものではありません.数字でも,英字でも,残りのビットでは順次桁上っていきますが,最後まで来て,例えば,数字の9の次の0011 1010”は,数字ではなく,":"が割り振られています.8bitで表現可能な256種類のビット列の1つずつに,約束として,ISO(国際規格)ASCII(アメリカ規格)JIS(日本工業規格)で,割り当てている文字コード(文字符号)です.数字の場合のみ,この8bit(実際は下4bit)を10進1文字とみなして,計算もできる2進化10進符号(Binary Coded Decimal)というのもあります.話が広がりすぎるので,ここまでにしておきます.

binaryは,数の時は「2」,それ以外は「2」というのが本来は正しい言い方です.binary codeは,本来は,2値コード.文字コードは,8bitbinary codeで,carry 「桁上げ」もしないのに,「8bit2進コード」というのは,本来はおかしいのです.「8bit2値コード」が本当でしょう.でも,「8bit2進コード」とこの分野では言っているから,それをわかっていて使うのは,いいでしょうね.

 

 日本語は,256文字では全然足りません.普通は,16bit使います.216乗,すなわち,65,536種類の文字を使うことが可能です.実際は,JISでは,6,879文字しか使っていません.未定義の部分がかなりあります.これも本当は,「16 bit2値コード」ですが,「16 bit2進コード」と通常は言っています.

 

 カラー画像で説明すると長くなるので,白黒画像で説明します.1枚の静止画像は例えば,1024×768bit mapで表します.1024×768の点があるということです.白黒画像だと,1つの点が白か黒かで,全体を見渡せば,ある形や風景,文書に見えるということです.0が白を,1が黒を表します.白黒画像も2進数で表されるというのは,間違いです.0と1, 白と黒のコードです.

 命令コードも然り.音声データも然り.

 

 「コンピュータの中では,全ての情報は2進数で入っている」という言い方は,正しくありません.ある約束の2値の順列・組合せで入っているのです.

 
       
  bit ビット  
       
  decimal digit 10進桁  
       
  character code 文字コード  
       
  ISO code ISOコード  
       
  ASCII code ASCIIコード  
  JIS code JISコード