プログラミング 始めてみようかな!? 其の6



 コンピューターでは、CPU、メモリ、などで扱う全ての情報の表現は "0" と "1"だけ。この 0/1 の2進数で全ての計算を行っているのだそうです。(実際は電気信号の ON/OFF や電圧の差を使って動かしているそうです。)


2進数と16進数

 普段、生活の中では10進数を使用しています。PCを使って、一般的な表計算ソフトなどで四則演算処理をする時は10進数で入力し、10進数で答えが表示されます。しかし、コンピューター内部では、通常2進数が使用されます。コンピューターのCPUやメモリなどは電気信号の ON/OFF を使用して計算処理を行なっているので、データの最小単位、2進数での1桁の "bit(ビット)" を使用してデータ処理をしているそうです。

 10進数を2進数で表現すると、例えば、987を2進数で表すと 1111011011 。百、千、万、億と桁数が増えると、2進数では膨大な桁数になってしまいますし、分かりにくいです。
 そこで、コンピューターで2進数のように扱えて、人にとって扱いやすいような書き方が16進数(16進数を表すには、 0~9 と a~f を使用)なのだそうです。

2進数16進数10進数2進数16進数10進数
000000100088
000111100199
0010221010A10
0011331011B11
0100441100C12
0101551101D13
0110661110E14
0111771111F15

 1桁の16進数が最大値 F のとき、4桁の2進数も最大値 1111 になることが分かると思います。2進数を16進数に変換する場合、2進数を4桁毎に区切れば簡単ですし、その区切毎に上のような対応表を用意しておけば、それを見て16進数に置き換えができます。16進数から2進数へは、n桁の16進数→(4×n)桁の2進数で変換可能。
 また、 "1Byte(バイト)" は、 8bit なので、2桁の16進数で表すことができます。
 コード内での表記は、10進数はそのまま10進数の表記ですが、2進数と16進数は言語などによって異なるそうで、例として、2進数では先頭に "0b" を付けて 0b1100 のように、16進数では先頭に "0x" を付けて 0x3F9C のように表記して区別するそうです。

 このように、プログラミングする際には、2進数と16進数は相性が良く、コンピューターの内部処理を理解するために、2進数とそれを表す際に多く用いられている16進数を学ぶことで、少なからずプログラミングにも役立つようになるのだそうです。