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進数に見立てて(16進へ変換のため)4つづつ区切りましょう。
1100 1001
16進数で表すと下のようになります。
C  9
2進数のなんとかは16進数でいうところのなんとかと、ただ言い換えただけです。が、8個の0と1の羅列が、16進数の数字二つC9で表せました。

最初の8個の0と1は値ではなくただの羅列でした。ですが、それを値に見立てて16進数に変換しました。

この分野の専門家は16進の値Cは2進で1100、値9は2進で1001と16種類全部憶えています。(嫌というほど繰り返してるので)

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

この値C9を見て、「右から2番目の人は0って答えたのね、右から7番目の人は1と答えたのね」と分かります。(憶えてれば)

つまり、ただの羅列を表す部分でも16進表記にしてしまえば、0と1の配列を言い表す目的にも使えるということになります。

なので、コンピュータの中の記録を人間に見せる場合には、大抵は16進の数値を2コづつ並べて表記するよう作られています。

そのまとまり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進数はどうやって使うねん


ポク太郎の「俺の説明聞いてくれ」-デジタルの世界って
前の記事 次の記事
なんで16進数!?(怒) bit数の大きなコンピュータは速い

スポンサーリンク



↓ ランキングに参加しています!(Ctrlキーを押しながら) ↓

blogramのブログランキング

ポク太郎の「俺の説明聞いてくれ」 コンテンツ
ポク太郎の「俺の説明聞いてくれ」最キラー記事 IT関連
電気回路やプログラムの記事。元々のメインコンテンツ。
UWSC奮闘記
プログラミングのできる子に
デジタルの世界って
映画・ドラマ・芸能
ハリウッドが主のエンターテイメントの記事。最近は似顔絵多し。
戦士の息抜き
ブログ運営
AnalyticsやSerchConsolなどの使い方、アクセスアップに関する話題。
アドセンス関連
他のGoogleツール
その他
アホのもくろみ
アホの雑記
取りとめもなく好き勝手に書く記事。不本意にも一番人気だったり。
役に立つかも
休むに似たり
好き勝手に書く
落書き漫画
何故人気なのか全く解らない数コマ漫画。結局最大コンテンツに。
物思いに耽る
免責事項 ホームへ戻る

スポンサーリンク





0 件のコメント:

コメントを投稿