アーカイブ

2008 年 11 月 のアーカイブ

2進数とは(3) 〜 ビットとかバイトって聞くよね 〜

2008 年 11 月 26 日

2進数について、3回目の講義になりました。
だんだん飽きてきてると思いますので、ちょっと計算は止めましょう。

新聞ではほぼ毎日「1ギガビットDRAM価格が急落」とかのニュースが出てますね。
そんなニュースに興味ない?
それでは、「インテルが最新64ビットCPUを発表」という記事くらいは、この講義を見てくれている人なら
読んだことあるでしょう。

このビット、実は2進数の1桁のことを表しています。
英文字では、bitです。
つまり0、1のどちらか1桁の数字を入れることができる箱と考えられます。
DRAMと言うメモリはダイナミック・ランダム・アクセス・メモリの略でして、パソコンのメインメモリとして使われています。
このメモリの箱の数が1ギガ分あるということになります。
じゃ、ギガってなに?ってことになりますが、これは単位です。
メモリで使われる単位は、キロ、メガ、ギガ、テラなどがあります。
肉の1キログラムは1000グラムですよね。
つまり、1000を1キロとまとめています。
コンピュータの世界では2進数を使うので、1000という10進数は使いにくい。
そこで、キロは2の10乗を示します。

2の10乗は、10進数の1024となり、10進数の1000に近いのです。
メガは2の20乗、つまり1,048,576を示します。単位を表す文字は大文字のMです。
ギガは2の30乗となり、1,073,741,824を示します。単位を表す文字は大文字のGです。
最近はハードディスクの容量に1TBとかかれた物も出てきました。
これは、予想通り2の40乗となります。

よって、1ギガビットDRAMというのは、約10億個の0か1を入れる箱を持っていることになります。
指先の大きさにとんでもない数の箱を持つことが出きるなんて、技術の進歩はスゴいですね!

しかし、ここで話は終わりません。
皆さんのパソコンに入っているメインメモリは、1GBと書かれていませんか?
この大文字の「B」はビットを示していませんし、皆さんは「イチギガバイト」と読んでいますよね。
その通り、Bはバイト(Bytes)の略称です。
かならず、大文字のBを使います。
ビットは小文字のbを使います。
なぜ、バイトがあるのでしょうか?
ビットは0、1を1つ入れる箱を示します。
しかし、普段1つの箱ごとに使うのでは、効率が悪い。
そこで、最低限8個のビットをまとめて1バイトと呼ぶようにしたのです。

8bit = 1Byte

この式にしたがうと、1GBは8Gビットと言えます。
つまり、約86億個弱(8,589,93,592個)のビットの箱を持っているパソコンということになるんです。
途方もない数字ですね。

筆者が小さいころは、パソコンには32KBのメインメモリが入っていました。
これは、32x8x1024=26,2144個分の箱です。
25年のうちに、メモリは32768倍増えたのです。
それだけ大量な情報を扱うことができることにはなったのですが、OSが・・・
とこの辺で今回はおしまい。

『講義のまとめ』
1.ビットは0、1を表す箱のことである
2.8ビットは1バイトである
3.バイトの記号は大文字のBである
4.キロ、メガ、ギガなどの単位は、2の何とか乗という単位をまとめたもの

admin プログラミング講座

2進数とは(2) 〜 数字ですからもちろん計算できます 〜

2008 年 11 月 26 日

2進数は0と1で表現できる数字であることは、前回お伝えしました。
そして、数字なら算数で計算できるわけです。
ちょっとやってみましょう。

■足し算(加算)
一番大切な計算です。
なんとファミコンに搭載されているCPUは足し算、引き算、掛け算、割り算のうち、足し算しか出来ません。
じゃどうやって計算するの?と言う疑問がでれば、あなたの脳は2進数に興味が出てきた証拠です。
10ー5を計算するとき、10から5を”引く”から引き算になるのですが、10からー5を”足す”ことに発想を
変えると、足し算だけでできるのです。
そして、掛け算は足し算の繰り返しだし、割り算では、引き算の繰り返しでできるのです。
しかし、そんな重要な足し算も、実は論理演算というさらに基本的な演算の組み合わせでできていることになります。
その話は次回。

では、さっそく足し算してみましょう。
普段足し算とほとんど同じですが、気をつけなければならないのは、この2進数の世界では、「2」以上の数字は
使えません。0と1だけです。

1+0=1
0+1=1

簡単ですね!

では、1+1の時はどうなるのでしょうか?
10進数の計算では、5+5の時、1桁繰り上がって10となりますね。
これとまったく同じです。

1+1=10

これだけ知っていれば、2進数の計算はできたも同然です。
下の問題はどうでしょうか?

1010+0101=?

答えは、1111です。桁上がりがないため、簡単です。
では、次はどうでしょう?

0011+0110=?

桁上がりしましたよね。
答えは1001です。

最後の問題です。
1111+1111=?

全部の桁に1があるので、桁上がりしっぱなしです。
答えは、4桁に収まりません。
11110です。

どうでしょうか?
重要な計算ですので、マスターしてください。

admin プログラミング講座