Linuxサーバより愛を込めて。

Linux(Ubuntu)サーバとダーツを愛する中年サラリーマンの日記。

日記

ビット(bit)とバイト(byte)

最近チラシやインターネット上の広告を眺めていると「Windows7 64bit搭載!」なんて文言をよく目にします。

 

自分には当分縁のない話だと思い深く考えずに来ましたが実際のところどうなんでしょうか?

 

知った上で縁がないのならそれでいいんでしょうが、実はチラッとでも縁があるのに知らないだけでスルーしてたらもったいない?のでちょっと調べてみました。自宅サーバやってるくせに今更かよ!ってツッコミはご縁苦慮下さいm(_ _)m

 

bitとbyte

ちょっと簡単な数学みたいなお話になってしまうので嫌いな方や興味のない方は読み飛ばしてもらっても構わないんですが、コンピュータを勉強される方は必須の考え方になりますので我慢して読んでみて下さい。

 

ご存知の方が多いと思いますが、コンピュータはそもそも数字をメチャクチャ高速で計算することで処理を行います。文字を扱うにも写真を扱うにも動画を扱うにも全て内部的には数字の計算です。

 

更に言えば使う数字は「0」と「1」だけです。(これが2進数とよばれる考え方です)

 

実際には0と1をとてつもなく大きな桁で表した上にそれを高速で処理するのがコンピュータのすごいところなのですが、その最小の単位を「1bit」といいます。(0または1で定義される1桁の数字が1bitに相当します。)

 

ちなみにメモリならGB(ギガバイト)、ハードディスクになるとTB(テラバイト)なんて単位を目にしますよね?

 

このバイト(byte)については「1byte = 8bit」と決められています。

  • 1ビットで表せる情報は0か1の2通り(2の1乗 → 2)
  • 2ビットで表せる情報は00、01、10、11の4通り(2の2乗 → 4)
  • 3ビットで表せる情報は000、001、010、011、100、101、110、111の8通り(2の3乗 → 8)
  • ・・・

というように、nビットのデータが表現できる情報量は「2のn乗」ということになるのがおわかりいただけますでしょうか?

 

1バイトのデータであれば8ビット分なので2の8乗=2×2×2×2×2×2×2×2 = 256通りの表現が可能となります。

 

たとえば、普段僕らが使用するのは10進数ですがコンピュータはこれすらも2進数で処理します。

 

2進数と10進数

 

 

コンピュータは表の上段のように数えていくんですね。

 

こう考えていくとアルファベッド(27文字)を表現するために必要なビット数は5ビットで十分ということになります。(2の5乗=32通り表現できるので)

 

ちなみにこれまたご存知の方が多いでしょうがキロは1,000倍、メガは1,000,000倍、ギガは1,000,000,000倍、テラは1,000,000,000,000倍を表しますので・・・

  • 1KB(キロバイト) = 1,000 × 256通り(1byte=8bit) = 256,000通り
  • 1MB(メガバイト) = 1,000,000 × 256通り = 256,000,000通り
  • 1GB(ギガバイト) = 1,000,000,000 × 256通り = 256,000,000,000通り
  • 1TB(テラバイト) = 1,000,000,000,000 × 256通り = 256,000,000,000,000通り

というとてつもない情報量を誇るわけですね。

 

なんとなくですがビットとバイトが分かったような気がします。次はこれを踏まえて32bitOSと64bitOSについて考えてみたいと思います。

-日記
-,