AWSにトライする。 2進数ってなんで学ぶ必要あるの?

情報処理技術者試験って知っていますか?

大学卒業後、就職した会社でシステム部門に配属され、プログラマーとして一から知識を叩きこまれました。
文系でコンピュータなんて、これっぽちも興味がなかったのに・・・。

入社した新人は、COBOLというプログラム言語を習得することと、情報処理技術者試験に合格することを目標として課されれました。

当時は、まだ情報処理技術者試験第2種というのがあって、それが入門の試験でした。

この中で最初に学ぶのが、2進数です。
コンピュータの中はすべて2進数で処理されているからなんですが、この2進数というのが文系にはわからない。

要は0と1しかない世界なんですよ。

0  に1を足すと   1
1  に1を足すと  10
10 に1を足すと  11
11 に1を足すと 100
・・・

といった具合に、2になると位が一つ上がっていくんです。
10進数だと、9に1足すと10になるじゃないですか。
それと同じ理屈なんですが、この考えを元にいろいろ展開し始めるわけですが、2進数に慣れていないとそれがわからなくなって混乱します。

 

コンピュータの世界では、この最小単位のことをビットって呼びます。
これが8個集まって8ビットで1バイトという単位になります。
それを10進数で表すと、以下のような関係性になります。

← 8ビット →  10進数
00000000  0
00000001  1
00000010  2
00000011  3
・・・
とやっていくと「11111111」は「255」であることがわかります。

今回AWSにトライする中で、IPアドレスのことを理解しました。
IPアドレスは、インターネット上で示す場所のことで(住所に例えられます)、IPv4の場合、32ビットで表していて、それを8ビットずつ区切って表現します。

2進数   :00000000.00000000.00000000.00000000
10進数  :0.0.0.0
IPアドレス例:192.168.0.0

IPアドレスってよく理解しないまま普段使っていましたが、使う場合、10進数表記の「192.168.0.0」って使っているなぁと。
それが8ビットずつ4つのかたまりで表現されていることを理解したら、その1かたまりが8ビットで2進数で表示すると「00000000」~「11111111」の範囲になって、それが10進数で表されていたんだな、と腹落ちしました。

それを理解するためにも、2進数を理解しておく必要があるんだと教えてくれたらもっと理解しやすかったのにな・・・。

ただただ、2進数で表現する方法や10進数に変換する方法を理解しろといってもなかなか理解できないよ、今回そう思いました。

2進数表現を理解した上で、コンピュータのもろもろのことを勉強していくと、かなり理解の深まり方が違うと思います。

 

頑張っていきましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です