キーワード:bit 解除

PC等を使っていると、ビットやバイトという単位がよく出てきます。

ビットやバイトは何かというと、データの単位で、

メモリーやディスクの容量なんかを表す場合に使います。

 

ではビットとバイトの違いは何か?

大雑把に言うと、バイトはビットの集合です。

 

ビットとは?

まずビットについてですが、ビットというのはデータの最小単位です。

コンピュータはデータを電気信号として処理していますが、電気信号で

情報を表す場合、オンかオフかの2通りしかありません。

 

例えばこれを数字で表す場合0をオフ、1をオンとしたとします。

この場合、表される数字は0と1の2パターンです。

この単位をビットといいます。

 

じゃあビットで「2」を表す場合はどうすればいいか?

もうひとつビットを追加して2桁で表せばよいと言う事になります。

ようするにこうなります → 0は00 1は01 2は10

ビットが2つ集まったので2ビットという単位になります。

 

また、ビットのように0と1の2つの数字だけでの表現方法を「2進数」と言います。

我々が普段から使っている数字は0~9までの10通りの数字を使いますので「10進数」です。

○進数の○の部分を基数といい、例えば2進数を10進数で表記する場合、

基数が2から10に変わるため「基数変換」などと言ったりする事もあります。

 

ただ、このままでは使いづらいので以下のように対応表を作ると少しわかりやすくなります

コンピュータでよく使われているものは以下の4種類です。

2進数

8進数

10進数

16進数

0

0

0

0

1

1

1

1

10

2

2

2

11

3

3

3

100

4

4

4

101

5

5

5

110

6

6

6

111

7

7

7

1000

10

8

8

1001

11

9

9

1010

12

10

A

1011

13

11

B

1100

14

12

C

1101

15

13

D

1110

16

14

E

1111

17

15

F

このように表現できる数字が足りなくなったら桁が繰り上がるのは

我々が使っている10進数でも同じです。

16進数に至っては数字が足りないのでアルファベットで表現します。

上の表見てわかるように、8進数1桁は2進数の3桁分

16進数1桁は2進数の4桁分に対応します。

 

バイトとは?

次にバイトです。上の方でビットの集合と書いていますが、ひとつの処理単位のようなもので

現在普及しているコンピュータやデバイスでは1バイトは8ビットで表されています。

つまり、8桁の2進数で表される単位が1バイトということになります。

上の表の2進数を見ると4桁までで表されています。

8ビットならば1111 1111 つまり、0~255の256通りの表現が可能です。

16進数で表すと0~FFです。

 

なぜ8ビットかというと、どうやら英語圏の人が文字を表すのに記号も含めて

256通りもあれば、お釣りが来るぐらいだからだという話らしいです。(その辺は詳しく知りません)

※7ビットしか使わない文字にASCIIコードと言うものがありますが文字コードの話はまた今度。

 

なので、1バイトは必ず8ビットだとは限りません。

コンピュータによっては1バイトが6ビットだったり9ビットだったりするかもしれません。

ただ、現在普及しているコンピュータは8ビットを1バイトとしているので1バイト=8ビット

と覚えても問題はないでしょう。(そもそも1バイトが8ビット以外の処理系を見たことないしw)

 

正確に8ビットという事を表現したい場合は、1バイトではなく、1オクテットといいます。

1オクテットはその名どおり、必ず8ビットです。

 

IPアドレス(IPv4の場合)は32ビットを8ビットずつ4つに分けて表現しますね。

この4つに分けた8ビットの塊1つを「オクテット」と呼びます。

これはどんな処理系でも必ず8ビットであるという事を強調しているようなものですw

IPアドレスとかネットワークに関してもまた別の機会にでもw

 

また、2バイトをワード、4バイトをダブルワードとか言ったりする場合もあります。

 

 

さて、ここまで長く書きましたがもう少し続けますw

 

データのサイズを表したりするバイトですが、ただの「バイト」だけだとデータ量を表すのにも

物凄い桁数で表さなければなりません。 

 

そこで単位にキロやメガをつけるわけです。

わかりやすい単位だと、1kg=1000g、1km=1000mなどがありますね。

つまりキロは1000倍を表します。

 

ではメガは?キロの1000倍、つまり100万です。フリーザ様の53万より大きいですねw

バイトの単位でもキロバイト、メガバイト、ギガバイト、テラバイトと単位があります。

これも単位ごとだいたい1000倍ずつぐらい増えていきます。

 

このだいたいとはどういうことでしょう?

情報の最小単位がビットだと書きました。

コンピュータの最小単位であるビットは2進数です。

なので1000とかいう10進数の単位で表すよりも2進数を基準に考えた方が

色々と都合がよい場合もあるんでしょうね。

下の表のように表されます。

1キビバイト

1キロバイト

2の10乗=1024バイト

1000バイト

1メビバイト

1メガバイト

2の20乗=1024キビバイト

1000キロバイト

1ギビバイト

1ギガバイト

2の30乗=1024メビバイト

1000メガバイト

1テビバイト

1テラバイト

2の40乗=1024ギビバイト

1000メガバイト

1ペビバイト

1ペタバイト

2の50乗=1024テビバイト

1000テラバイト

はて?

キビ?メビ?キロとかメガとかじゃないの?

はい、2進数を基準で考えた場合はキビバイト(KiB)やメビバイト(MiB)、

10進数を基準で考えた場合はキロバイト(KB)やメガバイト(MB)

で表すのが最近では流行って来ているとか。

 

1キビバイト(KiB)は1000バイトとして扱うのは間違いですが、

1キロバイト(KB)は1000バイトとして扱ったり1024バイトとして扱ったりと

なんかもうバラバラのようです。

プログラムを組む時は2進数単位の方が個人的にしっくり来るので

1024バイトを1キロバイトとしてよく扱います。

 

2進数は10桁増えるごとに1024倍ずつ増えます。

なので1000ではなく、1024が単位となっているのでしょう。

パソコン等で情報の単位を見ると1024バイト=1キロバイトで計算されています。

(単位はキビじゃないのに1024です)

 

 ディスクやメモリの容量を表すのに使うバイト単位を使用していますが、こんな経験はないでしょうか。

 

 1TBのハードディスクを買ったのにいざパソコンにつないだら

930ギガバイトぐらいしか容量がない!!残りの94ギガバイトはどこいった!?

 

はい。

ご愁傷様です、騙されたんですw

いや、というのは半分冗談で、実はこういうディスクなんかの記憶媒体の容量は

1024単位ではなく、1000単位で計算しているため誤差が生じているのです。

PCでは1024単位でキロやメガで扱うのに、もうなんかややこしいですね。

 

こんな感じで長々と書きましたが色々と端折りもしました。

ビットとバイトの関係はこんな感じになっています。

 

アルファベットの表記でも

1メガバイトは1MB、

1メガビットは1Mb

というように、バイトは大文字、ビットは小文字になっている場合が多いです。

 

回線速度なんかはビット単位が多いですね。

光回線100Mbps!と言った場合は、1秒間に100メガビットの情報を理論上送信可能です。

100メガビットといったら、8ビットで1バイトならば1秒間に送信できるデータは12.5メガバイトですね。

 

ま、実際には理論上の半分も速度が出た事はないですけどねw

 

ちょっと余計な話も加わりましたが、今回はこの辺で。

 

[ 1 ]      1件中 1-1件