計算コラム

(88) 身近なN進法

  • Back
2017/12/07
 2進法,8進法,10進法,16進法・・等"N進法"という言葉は、情報系の授業を受けたり、情報系の仕事に従事している人以外はあまり馴染みが無いかもしれない。我々が普段生活する上で数を数える際には、主に10進数が用いられる。10進法は、0~9までの数字を使用し、9の次の数値は1つ上の桁に繰り上がり、"10"とする数の表し方である。それぞれの桁が 10nの位を表している。 例えば、
  231 = 2*102 + 3*101 + 1*100
と表される。身近なスーパーマーケットや銀行でのお金の計算や、年齢や体重の数値に10進法以外が用いられることはほぼ無いだろう。
 
 一方、我々が普段使用しているPC・スマホ等のコンピューターの世界においては、内部の処理は2進法が用いられている。2進法は、0と1の数値を使用し、1の次の数値は1つ上の桁に繰り上がり、"10"とする数の表し方である。それぞれの桁が 2nの位を表している。 例えば、
  1101 = 1*23 + 1*22 + 0*21 + 1*20 (= 10進数の13)
と表される。電源がONかOFF・電流が流れているか流れていないか等、2通りのパターンの組み合わせで表現するのに都合が良いため、コンピューターの世界ではこの2進法が用いられている。この"0"か"1"の2通りで表されるデータの最小単位を「1 bit(ビット)」という。 この「1 bit」という単位、実は普段意識しなくても、よく耳にする「スマホの今月の通信量が10 GByte(ギガバイト)も行ってしまった!」とか、「このハードディスクレコーダーの容量は1 TByte(テラバイト)だ。」等で使っている。

  8 bit = 1 Byte(バイト)
  1024 Byte = 210 Byte = 1 KByte(キロバイト)
  1024 KByte = 210 KByte = 1 MByte(メガバイト)
  1024 MByte = 210 MByte = 1 GByte(ギガバイト)
  1024 GByte = 210 GByte = 1 TByte(テラバイト)

  (※ 簡易的に1000 Byte = 1 KByteとして計算されることもある。)

となるので、先ほどの10 GByteを例にとると
  10*10243*8 = 85899345920 bit
つまり、0又は1が858億9934万5920個並んで表現されるデータである。
 世の中には様々な場所で10進法以外のN進法が使われているが、古代には60進法で数値が表されることもあったなど、N進法の歴史を紐解いてみるのも面白いかもしれない。
関連リンク
[1] N進数の相互変換  
[2] n進の論理演算