2017年2月13日月曜日

1バイト…1バイト… 【回路やデジタルの自己満説明!】

専門外の方に回路、コンピュータの動作原理を解説し興味を持ってもらうためのブログ。今回は、情報量を表すバイトとかビットが何ものなのかを書いてみました。

話の内容

前回はこんな話を書きましたが、今回はこんな話です。
○1バイト(Byte)ってなんぞやねん
○16進数はどうやって使うねん

ウィキペディアの“バイト(情報)”の項目を見てみました。
   1バイトは8ビット(bit)
だそうです。
情報の量を現す1bitとは、0か1かを表せるものが一つ。
それが1bitです。


1バイトは8bit

例えば、「ポク太郎は男前ですかアンケート」を答えさせられたA子さん、B美さん、C紀さんは、3人とも0か1かを表せるので、
   A子さんは1bitの情報量を持ち、
   B美さんも1bitの情報量を持ち、
   C紀さんも1bitの情報量を持ち、
3人合わせて3bitの情報量を持つといいます。

つまり8人揃うと、その8人で1B(Byte、バイト)の情報量ということになります。


何で8人をひとまとめにしたのでしょうか?
調べようとしたのですが、「バイト」と検索するとアルバイトに関する情報ばっかり出てくるのでやめました。

4bitというのは、0~15までの16パターンを作ることができます。
5bitというのは、0~31までの32パターンを作ることができます。
6bitというのは、0~63までの64パターンを作ることができます。
7bitというのは、0~127までの128パターンを作ることができます。
8bitというのは、0~255までの256パターンを作ることができます。
   (0~Nまで)とあるNはその羅列を2進数と見立てたときの10進数での値


元々コンピュータの扱っていた記号は数字、アルファベット(大文字、小文字)、各種記号、装飾キー(SHIFTとか)、
その他TABとかESCとかですが、それらに一つづつ番号を与えたかったのではないかなと予想します。
2のN乗の数値がいいけど、4bitじゃちょっと足りないし、8bitの256種類もあれば大丈夫…とか考えたのでしょうか。

なんにせよ、8bitで表現し続けて現在に至ります。
パソコンショップの宣伝を見ると、2TBハードディスク搭載!とか、32GBのSDカード800円!とか。
Bの部分がバイトのことです。


2進数や16進数とどう関係するの

1バイトは8bit…、1バイトは8bit…。

前回の記事で16進数が都合良いと書きました。
16進数の数字1つは、2進数の文字が4つに相当。

「バイトとbitは情報量の話なので、何進数とかって数値と関係ないじゃん?」と思われるかも知れませんが、以下の例を見ていきましょう。


8bitの何らかの情報を並べて書くと、00111001(←8個)
数値に見立てて(16進数へ変換するため)4つづつ区切りましょう。
                 0011 1001
16進数で表してみましょう。
                   3    9

8個の0、1の羅列が、16進数の文字二つ39で表せました。
2進数のなんとかは16進数でいうところのなんとかと、ただ言い換えただけです。


ここで気づくのが、
最初の8個の0、1は数値のつもりではなくただの羅列でした。

ですが、それを数値に見立てて16進数に変換すると、
その配置(0と1の並び方)も含めて言い表している16進の数値が出来上がります。

つまり16進の数39と言い表すだけで、8つの0と1がどう並んでいるのかも分かることになります。


8人の人に0か1かを聞きます。
右から順に1番の人からの返答を並べます。
結果は、11000110だったとします。

1100 0110
  C    6

この16進の数値C6というのを見て、
「あー、右から2番目の人は1って答えたのね、右から5番目の人は0と答えたのね」と分かることになります。

そんなわけで、コンピュータの中の記録を人間に見せる場合には、16進の文字をつらつら表記するよう作られています。
(ハードウェア的には0か1を記録する構造になっていますが。)


そのまとまりを8個に定義して、それを1B(バイト=16進数の数字二つ)と呼んでいます。
16個に定義したものは1Word(ワード=16進数の文字四つ)と呼んでいます。


デッカイバイトを表す

コンピュータが進化して、だんだん扱える情報量が大きくなってきました。
KgやMHzなどと同じように、バイトも1000倍を表す接頭冠(?)を付けて表します。

1000倍KB(キロバイト)
1000x1000倍
=100万倍
MB(メガバイト)
1000x1000x1000倍
=10億倍
GB(ギガバイト)
1000x1000x1000x1000倍
=1兆倍
TB(テラバイト)

2進数を扱う単位なので、1000倍はキリが悪く計算上ズレが出ることが多いので、2進数でのキリのいい数字1024倍で定義した
キビバイト(KiB)、メビバイト(MiB)、ギビバイト(GiB)、テビバイト(TiB)
というものを使う場合もあります。


話の内容

こんな話でしたが内容は伝わりましたでしょうか。
○1バイト(Byte)ってなんぞやねん
○16進数はどうやって使うねん

【関連記事】  bit数の大きなコンピュータは速いのん
何で16進数!?(怒)
何で2進数!?(怒)
デジタルは“0”と“1”?



スポンサーリンク

スポンサーリンク



0 件のコメント:

コメントを投稿