From: リスキルテクノロジー 松田航
新宿本校にて、、、
システムの学習を
進めていると
「2進数」
「16進数」
...という
耳慣れない言葉を学びます。
10進数とは異なる
このような数の考え方が
システムの学習に
どうして必要なのでしょうか。
さまざまな数の数え方
普段の生活で
使われるのは10進数です。
言う間でもありませんが、
0,1,2,3,4,5,6,7,8,9
と数えてゆき、
9の次は桁上がりして
10
となる数の考え方ですね。
人間の手に
10本の指があるから
10進数が定着したとも言われています。
他には
60進数も使われますね。
時計の考え方です。
0...57,58,59
と数えてゆき、
59の次は桁上がりします。
1時59分の次は
2時0分になりますね。
こちらは
古代のバビロニア帝国で使われた
数の考え方です。
そして
コンピュータが登場して
世に定着しはじめたのが
2進数と16進数の考え方です。
2進数は
0と1だけで数えます。
2になると
桁上がりする数え方で、
0,1,10,11,100...
...と数えます。
これを10進数で言うと
0,1,2,3,4...
にあたります。
16進数は
16の次に桁上がりする数え方で、
0,1,2,3...9,A,B,C,D,E,F
と数えてゆき、
F(16)になると桁上がりします。
F,10,11,12,13...1F,20,21,22...
と数えます。
ここまでよろしいでしょうか。
あまり理解できなくても...
普段の生活とは違う
とっつきにくい数の考え方!
という風に覚えておいてください。
コンピュータは2進数しか扱えない
基本的に
コンピュータは
2進数しか扱うことができません。
コンピュータには多くの
IC(Integrated Circuit)
…が含まれています。
コンピュータの中身を
見たことがあるならわかりますが、
黒い虫みたいな部品のことです。
最近では
小型化、薄型化されて
ICカードに内臓されていますね。
このICでは
多くの計算が行われていますが、
実際には...
0か1
...しか判断できないのです。
0か1
つまり、
0 = 電流が流れていない状態
1 = 電流が流れている状態
ですね。
ICカード内では
0か1を判断するエリアが複数あり、
その単位を
ビット(bit)
...と言い、
8ビットだと
一度に8つ判断できるという意味になります。
最近のPCは
32ビットマシン
64ビットマシン
と言いますが、
文字通り
一度に計算できる量(実行速度)が
多いことを表しているのです。
プログラムを書いていると
多くの命令文が存在しますが、
結局のところ
コンピュータ上で実行される時には
0,1
という電気信号に変換された
プログラムが実行されるのです。
人間が使う
10進数でコンピュータと
やりとりしようとしても
コンピュータは
ONかOFFの2進数しか扱えません。
機械を制御するにしても
通信してデータを送るにしても
最終的には
2進数で行う必要があるのです。
2進数と相性のいい16進数
しかし、
2進数にも欠点があります。
それは
人間にわかりにくい!
...ということです。
たとえば
10000
という10進数を
2進数で表すとなると
0010011100010000
...になり、
表している数がわかりにくいですね。
ここで表れるのが16進数です。
16進数は2進数と相性がよく、
2進数を4桁ずつ区切ると、
16進数で表現できます。
0010 0111 0001 0000
それぞれの区切りを
16進数に変換すると...
2 7 1 0
...になり、
0x2710
...となります。
ずいぶんと短くなりますね。
最初の0xは...
16進数で表現していますよ
という意味です。
プログラムや仕様書に
16進数で表現しておけば、
長い2進数を
書く必要もありませんし、
処理においても
2進数に変換しやすく、
コンピュータにも
複雑な変換処理が必要なくなるのです。
制御系やインフラ系ではよく使います
一般的なシステム開発で
2進数や16進数を使うことは
あまりないかも知れません。
ほとんどの
プログラムや仕様書では
10進数がベースで
書かれているためです。
しかし、
機械を操作する制御系システムや、
インフラ系エンジニアにとっては
2進数や16進数を
目にする機会は増えることでしょう。
その時になって
慌てないためにも、
今のうちから
2進数、16進数に馴染んでおいてください。
リスキルテクノロジー
松田
PS
私も最初は戸惑いましたが
学んでいくうちに次第に慣れます。
何でもそうですが、
知ることで不安は消えます。
安心して多くを学びましょう。