土曜日, 6月 16, 2007

抽象化 その1

コンピュータは全てのことを0と1だけで表現している。
いわゆる2進数というヤツ。

でも、いくらスーパーなエンジニアでも0と1だけで全てを把握するのは無理なので
16進数をつかったりして表現する。

0と1が8個並んでいるよりも、0~Fまでの値が2個並んでいる方がよほど楽だ。

最も、普通の人なら0~9までの数字が3個並んでいる方が理解しやすいが
人間の適応能力というのは大したもので、我々の業界では
32や64、256などの数字(16進数でそれぞれ0x20,0x40,0x100)を
「キリが良い」と感じてしまう重大な職業病が蔓延している。

16進数の方が2進数よりも扱いやすいのは、
まず第1に頭の中で処理をする数字の量が減ること
そしてもうひとつは値をある程度『記号』として意味をもたせることができるからだろう。

これも1つの抽象化だ。

抽象化は設計や検証のさまざまな場面で恩恵を与えてくれる。
なぜなら、抽象化されたものの方が人間が理解しやすいからである。

例えば次の2進数の数値をあなたは1週間後に憶えていられるだろうか?

1100101011111110.b

何の意味もない値を憶えておくことはかなり困難だ。
では、次の16進数の値ならどうだろう?

0xCAFE

これなら1週間後どころか1年、もしかすると一生憶えているかもしれない。
上の2つの数値は同じ値である。つまり、

1100101011111110.b = 0xCAFE

かなり極端な例だが、抽象化することで同じ値でもかなり扱いやすくなる。

ミスを減らしたり、理解を深めたり
この抽象化という概念はさまざまな場所であなたの味方になってくれる。

0 件のコメント: