TOYONOBUROGU

ミニマリズムを科学する

1ビットとか1バイトって何??

どーも、TOYOです

問題です!

Q.次の条件のとき、設問に答えよ。

条件:いぬ→うね、ねこ→のさ、からす→きりせ

設問:「きおり」は何の動物のことか?

答えはこの記事の最後に載せてあります

今回見ていくのは「ビット」と「バイト」です。「ビット」は「ビットコイン」のビットです。「バイト」はみなさんも128GBとか256GBとかは聞いたことがあると思います。しかし、「じゃあ128GBってどれくらいの大きさですか?」と聞かれたら答えられますか?

そこで、「ビット」や「バイト」はどういうものなのかじっくり見ていきましょう

f:id:toyotakah0:20180103031150j:plain

1ビットってどれくらいの大きさ?

まず、コンピューター世界は「2進法」の世界です。私たちは普段、「10進法」を使っているので、「2進法」はあまり馴染みがないかもしれません。

f:id:toyotakah0:20180103031150j:plain

2進法

「2進法」とは「0と1の2つの世界」です。同じように、「10進法」は「0~9の10つの世界」です。

f:id:toyotakah0:20180103031156j:plain

2進法と10進法の関係

2進法は「0と1の2つの世界」なので○と●で表すことにします。「1ビット」というのはこの○1つ分のことです。○か●かどちらなのか?という情報を持っています。

例えば、2ビットの場合は2²=4つの情報、3ビットの場合は2³=8つの情報を持つことができます。つまり、nビットの場合、2つの情報をもつことができるということです!

f:id:toyotakah0:20180103031120j:plain

ビットとは??
ここで問題です!
Q.2進法において、128つの情報をもつものがあった。これは何ビットか?
答えは記事の最後に載せてあります
 

1バイトってどれくらいの大きさ?

次は、「バイト」についてです。「ビット」は「bit」、「バイト」は「Byte」と書きますが大きさは全然違います。

「1バイト」の大きさは「1ビット」の8個分です。

つまり、「1バイト」=「8ビット」です

f:id:toyotakah0:20180103031125j:plain

1バイトの大きさ

8ビットなので2⁸=256つの情報を持っています

ここで問題です!

Q.2バイトはいくつの情報を持っていますか?
 
答えはこの記事の最後に載せてあります
 

キロバイト=1024バイト??

ここまではそう難しくないと思います。

では、1キロバイトはいくらでしょうか?普通に考えると、1キロバイト=1000バイトです。だって、1キロメートルは1000メートルですし、1キログラムは1000グラムだからです。しかし、最初に言ったように私たちは「10進法」の世界に生きているので1キロ=1000がキリがいいように思います。

でも、コンピュータは「10進法」ではなく「2進法」の世界に住んでいます。この世界では1キロ=1000は少しめんどくさいんです。

f:id:toyotakah0:20180103031129j:plain

1キロ=1000は都合が悪い

そこで、コンピュータの世界では1キロバイト=1024バイトとなっています。なぜでしょうか?「2進法」では1000よりも1024のほうがキリがいいんです。

「10進法」で生きている人間には1キロ=1000で、「2進法」で生きているコンピュータには1キロ=1024がそれぞれキリがいいんです。

1メガバイト=1000キロバイトですが、これもコンピュータにはキリが悪いので1メガバイト=1024キロバイトです。なので、1メガバイト=1024×1024=1048576バイトとなります!

f:id:toyotakah0:20180103031135j:plain

1メガバイト

まとめ~ビットとバイト~

 大体のビットとバイトのイメージはつかめましたか?みなさんが今手に持っているスマホも見ているPCも2進法の世界で動いています。ビットとバイトは2進法の世界での基本単位となるんです!

最後に各設問の答えを載せておきます

Q1:かえる

【解説】

50音表を書いてみます。

f:id:toyotakah0:20180103031139j:plain

50音表

いぬの「い」と「ぬ」の1つ下は「う」と「ね」です。よって「いぬ」→「うね」となるので、「きおり」は...ということです。

Q2:7ビット

【解説】

nビットは2つの情報を持ちます。xビットが128つの情報をもつので、2=128をとくと、x=7です。

Q3:65536つ

2バイト=16ビットです。よって、216=65536です。