ものを数えるときに
12345と数える事が多いのですが
たとえば、5種類の色から3種類だけを選び、数字5桁で表現しなさいと言う問題があるとしたら
どのように考えるでしょうか?
日常生活なら
「色A」「色B」「色C」「色D」「色E」と書けば事足りる
しかしコンピュータの世界でプログラムを組む際に
変数が一つ増えるだけで大変な仕事となり、バグもそれだけ増える事から
どのようにして表せば良いか?
答えは2進数で表せば良いのである。
考え方はこんな感じである
例)2進数で15を表すと
1111
となる
例2)2進数で1100は10進数ならどうなるか?
答えは 12である。
これと今回のテーマが何の関係があるのか?
つまり、数字2桁で表現できる最大数はなんと256。
つまり、256通りの数字を扱う事ができるし、
8種類の違いを見いだすこともできる。
今回の5つの色を3つ選び、数字4桁で表現というのはまさに2進数をつかった考え方となる。
1をオン・0をオフとして
1番の色 使用=オン
2番の色 未使用=オフ
3番の色 使用=オン
4番の色 未使用=オフ
5番の色 使用=オン
これを2進数に置き換えれば
10101となり、10進数に置き換えると1+4+16=21となる。
(計算方法は数学の教科書を参考にしてください)
この方法をさらに16進数に置き換えれば
実に0x14(0xは16進数を表す)となる事から、たくさんの変数を使わずとも1つの変数で、実に様々なパターンを得る事が可能になる。
こんな事せずとももっと良い方法はあるかも知れません。
プログラムに限らず日常生活も何らか「制約」の中で生活をしている現実があります。
しかし制約が無く生活をするよりも何らかの制約を自ら課すことによってさらに良い方向へ転換することは多くあります。
デジタル思考は日常生活において、切っても切れない場面にあります。
ビットで考える事はオンとオフ、イエスまたはノーというドライな感じも見受けられそうですが、とらえ方次第では「物事がはっきりしてわかりやすい」事でもあるのです。