2017年2月13日月曜日

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

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

話の内容

○1バイト(Byte)ってなんぞやねん
○16進数はどうやって使うねん

ウィキペディアの“バイト(情報)”の項目を見てみました。
   1バイトは8ビット(bit) だそうです。
bitとは情報の量を表す単位で、“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の16パターンじゃちょっと足りないし、8bitの256パターンもあれば大丈夫…と考えたのでしょうか。

なんにせよ、1バイト=8bitで表現し続けて現在に至ります。
パソコンショップの宣伝を見ると、2TBハードディスク搭載!とか、32GBのSDカード800円!とか。
Bの部分がバイトのことです。
小文字でbと書きbitを表現するメーカもあります。なんというメーカかは忘れましたが、“プレイステーション”という機械の搭載メモリは16Mbと表現してあり、Bで表現すると16Mb = 2MBなんでそんな紛らわしい表現を選ぶんでしょうねぇ~っ?


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

1バイトは8bit…、1バイトは8bit…。
前回の記事で16進数が都合良いと書きました。16進数の数字1つは、2進数の桁4つに相当。

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

8人の人に0か1かを聞きます。右から順に1番の人からの返答を並べます。ただの羅列です。
11001001←8個
2進数に見立てて4つづつ区切りましょう。(16進数へ変換するため4つづつ)
1100 1001
16進数で表すと下のようになります。
 C   9
2進数のなんとかは16進数でいうところのなんとかと、ただ言い換えただけです。
が、8個の0と1の羅列が、16進数の数字二つC9で表せました。

ここで気付くのが、最初の8個の0と1は値ではなくただの羅列でした。ですが、それを値に見立てて16進数に変換すると、その0と1の並び方を言い表す16進の値が出来上がります。つまり、16進の値C9と言い表すだけで、8つの0と1がどう並んでいるのか分かることになります。この値C9を見て、「あー、右から2番目の人は0って答えたのね、右から7番目の人は1と答えたのね」と分かることになります。(この分野の技術者は16進のCが1100だとか9が1001だとか覚えてしまっています。)

16進の値は、数値を言い表すことももちろんできるし、0と1の配列を言い表すこともできるということになります。


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

そのまとまり2コをB(バイト=16進数の桁2コ=2進数の桁8コ)と定義しています。
そのまとまりを4コにしたWord(ワード=16進数の桁4コ=2進数の桁16コ)という定義もあります。


デッカイバイトを表す

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

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

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


話の内容

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

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

コンピュータ動作原理解説

バイト、ビット、16進数


スポンサーリンク



blogramのブログランキング

目次
コンピュータ(ハード/ソフト) 映画・ドラマ・芸能 変人のつぶやきとトラブル
ホームへ戻る ページ上部へ


0 件のコメント:

コメントを投稿