16進数 |
最後に、本講座では使いませんでしたが、知っておくと後で役に立つと思いますので、16進数の説明をします。
16進数は、それぞれの位が16のべき乗で表される数です。例えば1234という16進数は
1 * 16の3乗 + 2 * 16の2乗 + 3 * 16の1乗 + 4 * 16の0乗
と表されます。10進数でいうところの4660です。
10進数は、各々の位に0から9までの数字が書けます。2進数は、0か1です。16進数は0から15までです。ただし、10をA、11をB、……、15をFと書きます。例えば、4E6Cという16進数は、
4 * 16の3乗 + 14 * 16の2乗 + 6 * 16の1乗 + 12 * 16の0乗
つまり10進数の20076です。
10進数は、10で桁が繰り上がります。
0、1、2、……、9、10、11、……、99、100、……
2進数は、2で桁が繰り上がります。
0、1、10、11、100、101、110、111、1000、……
16進数は、16で桁が繰り上がります。
0、1、2、……、F、10、11、12、……、1F、20、21、22、……、FF、100、……
HSPでは、16進数の頭に$(または0x)をつけます。
2進数の%1111は
1 * 2の3乗 + 1 * 2の2乗 + 1 * 2の1乗 + 1 * 2の0乗
つまり10進数の15、16進数の$Fです。
2進数 | 16進数 |
%1111 | $F |
%11110000 | $F0 |
%111100001111 | $F0F |
%1111000011110000 | $F0F0 |
このように、2進数の4桁は16進数の1桁に対応します。
補足 |
・なぜプログラミングの世界では中途半端な数が多用されるのか |
本講座もそうですが、プログラミングの本や講座では、16や64や256、65536といった中途半端な数が多用されます。これは、16進数で表すと$10、$40、$100、$10000です。前に、コンピュータは絵も音も文章も、すべて2進数のデータとして取り扱っているという話をしました。16進数は2進数の4桁を1桁にまとめたものです。ですから、16進数で表した時にキリがいい数字の方がコンピュータにとってはキリがいいのです。 |