もどる

  bitByteの話


bit(ビット)とは何でしょう。
パソコンでは良く、bitという言葉が出てきます。
“このパソコンは、32bitマシンです。”とか、“このOSは、64bitです。”とか良く出てきますね。
パソコンには、アドレスバス、データバスという配線が有ります。(他にも、システムなどで使用しているバスが有ります。)
アドレスバスは、PCはなんらかの動作をするとき、どの場所に動作させるのかを決めて動作します。
この、どの場所かを指定するのが、アドレスバスの役目です。(場所・住所を特定するので、アドレスと言ってます。)
例えば、メモリに書き込む場合、どの場所に書き込むか、何か機器を動作させるには、どの場所(にインストールされているか)の機器か指定して動作をします。

PCは、1本の線(PC内部の線)で表す事の出来る数は、2つしか有りません。
0と1、つまり2進法が使われています。
(デジタルでは、信号が有るか無いか(高いか低いか)の2つの状態しか有りません。)
実際にはデータを表すのに、線1本では足りませんね。
そこで、複数の線を使用します。
この線1本で表している所を、bitと言います。
例えば、データを送る線が、8本の線が有れば、8bitと言い、これが8bitPCマシンになります。
8bitマシンのCPU(中央処理装置)には、8本のデータ線(バスと言います。)が有ります。
これは、2の8乗の数が扱えると言う事です。もし、8bitで足らない場合は、データを分割して処理します。
○○bitマシン(CPU)という場合は、このデータバスの数を言っています。

参考)バス
 ここで言うバスとは、乗合自動車の事です。(路線バスや観光バスのバスの事)
 なぜバスと言うかと、その時々で色々なデータが、一つの線に乗り合わせるためです。

現在は、32bit〜マシンですね。
以前は、CPU=1コアでしたが、最近は、2コア、4コアのものになり、6コアのものも出始めましたね。
例えば、2コアとは、簡単に言うと、1つのCPUケースに、CPUが2つ入っていると思ってください。
見た目は、1つにしか見えません。

アドレスバスは、もっと多くのバス(ビット)数が有ります。

CPUが80系(現在のPCのCPUの基礎となる)のバスは、アドレスバスと、データバスが重複して使われています。
つまり、最初に、データバスを、アドレスバスの1部として使いアドレスを指定し、次にそのアドレスに、データバスのみを使ってデータを送ります。
アドレス指定とデータ指定が2度手間になるわけですが、データバスの分の本数を減らせるというメリットが有ります。
CPUが60系(少し前まで、アップルのMacに使われていました。)は、データバスとアドレスバスが其々専用に有りました。
当然、80系では2回の動作が必要でしたが、60系は、1回で済みます。(アドレス指定とデータ指定が同時に出来ます。)
1回で済む方が、処理は速くなりますね。
なぜ、80系になったのでしょう。
最初に発売されたのは、インテルの8000(80系)というCPUでした。(実際には、4bitの40系も有りました。)
次に、発売されたのが、モトローラの6000というものでした。発売時期が、少し遅かったのです。
この発売時期が遅れた間に、世間一般では、i8000を使用したマシン用のソフトが大量に発表されていました。
このため、一般的には、この資産を利用するため、80系が多く使われました。
(発売時期が逆だったら、今とは逆になっていたのでしょうかね。)

Byte(バイト)とは?。

さて、bitが最小の単位である事はお解りいただけたと思いますが、Byte(バイト)とは何でしょう。
簡単に言うと、1ビットが8つ集まったものを、1Byte(バイト・普通Bだけで表す事が多いです。)と言います。

2Byte(16bit)の塊でWord(ワード)、4Byte(32bit)の塊をLongWord(ロングワード)等と言う事が有ります。

参考)
PC(ソフト)では、バイナリー(2進法)、デシマル(10進法)、ヘキサデシマル(16進法)が多く使われます。
オクタル(8進法)も使われる場合が有ります。

PCは、2進法以外は理解できません。
しかし、人間にとっては、10進法以外は理解しにくいですね。

2進法
 0と1しか有りません。(PCでは電気的に電圧が高いか低いかの判断しかしていません。)
 例えば、高い方を1、低い方を0とします。
 1つの桁(bit)で表されるのが、0と1です。
例えば、8桁(8bit=1Byte)では,0から255の数をあらわせます。
 0000000 〜 11111111までです。
 実際には、10011010などの様に表示されます。
 8桁もあると解りずらく間違いやすいので、4桁ずつに区切って表記します。
 例えば、上記の値は、1001と1010の二つに分けて表示します。
  1001 1010  間をスペースで開けます。
  1010を10進数で表すと、10になります。

しかし、これでも間違いやすいので(表示スペースも多くとります。)さらにこれを16進法で表示します。
例えば、10進数で12と記述が有った場合、1・2なのか12なのか間違いやすいですね。

16進数表記方法
9までは10進数と同じで、10はA、11はB、12はCという具合に、F まで使って表記します。
例えば、10・1・0・15の10進数は、16進数では、A10F の様に表記します。
通常は、Byteを上位4bit下位4bitずつに分け、例えば5・15なら、5F の様に表記します。さらに2桁ごとにスペースで区切ります。
例) 01 26 FE 4C A1  等の様に表記します。

2進数 0進数 16進数
0000 - 0
0001 - 1
0010 0と1しか表せないので桁上がりします。桁上がりしたので、1桁目は0となります。(10進数の場合9の次は10ですね。)
以下桁上がり
2
0011 - 3
0100 桁上がり 4
0101 - 5
0110 桁上がり 6
0111 - 7
1000 桁上がり 8
1001 - 9
1010 桁上がり 10 A
1011 - 11 B
1100 桁上がり 12 C
1101 - 13 D
1110 桁上がり 14 E
1111 - 15 F

  (上の4桁2進数)の事を 1248コード等と呼びます。

2進法の桁は、2の様になります。
n=10桁の場合は1024数えられるので、1KB≠1000B で、1KB=1024Bとなっています。
同様に、1MB=1024KB=(1024Bx1024)B=1048576B となります。
特に、PCの記憶装置(媒体)の表記は、2進法ベースで表記される事が多いです。

ページトップへ

inserted by FC2 system