ここ2週間ほど気持ちがブルーだった哲さん。でも、今週は 2進数、8進数、10進数、16進数の話
納品も済んで、軽やかに出かけてきた。愛犬ロボも、週一の
散歩を楽しみにしているよう。最も、ロボは、啓二さん宅で
もらえる食べ物が目当てかも知れないが。哲さんの家では、
ドッグフードだけなので、違う食べ物がある啓二さんの処は
魅力があるのかも知れない。
哲 :こんちは。 啓二:ほい。来たか。 哲 :今日は、女性はいないのか。 啓二:海外旅行だと。海外旅行に行く金があるなら、料理を習って 腕を磨いた方が、いい男がつくのになあ。 今日は、2進数、8進数、10進数、16進数の話だ。 哲 :なんでだよ。もっと操作や作り方の話をしてくれよ。 啓二:基本が肝心なんだ。それに、マイコンでLEDやスイッチを 使うときには、2進、8進、10進、16進の表現を即座に 他の進数に変換できることが必要なんだ。 哲 :そうかな。 啓二:まずは、2進の3けたを8進の1けたに相互に変換できるかな。 哲 :簡単、簡単。 これでいいかな。 啓二:上出来。次に、2進の4けたを16進の1けたに相互変換できるか。 哲 :簡単、簡単。 これでいいかな。 啓二:じゃあ、2進の4けたを一まとめにして何と呼ぶ。 哲 :ええ、バイトの半分に用語があるのか。 啓二:あるよ。あのIntel4004は、4ビットマイコンだったんだぞ。 2進の4けたを一まとめにした用語がないはずないだろう。 ニブル(nibble)というんだよ。あまり、出てこないけれど。 哲 :2進の1けたは、ビット(bit)でいいだよな。 啓二:いいよ。でも、ビットは略語なんだ。Binary Digitの略だ。 直訳すると2進数1けたになる。長いのでBITとしたんだ。 哲 :2進の8けたは、バイト(Byte)だよな。 啓二:うん、そう。でも2進の8けたは、オクテットと呼ぶこともある。 通信用語だけれど。バイトは、2ニブルだけれどオクテットを使う と、2進の8けたで一つの情報を表現すると規定されて、分割は 許さないんだ。 哲 :そうそう、ワード(Word)っていうのは、2バイトだよなあ。 啓二:ワード(Word)が、2バイトとしてよいときと、そうでないとき があるんだ。1ワード=12ビットとするようなコンピュータ があったりする。これは、一度に扱えるビットサイズを表現し PICでは、1ワード=12ビット、14ビット、16ビットの マイコンファミリーを形成している。 IBMやIntelのマニュアルでは、1ワード=16ビットだが 本来は、そのマイコンが一度に扱えるビットサイズを指す用語 なので、どっちで利用しているのかを、文脈から判断しないと ならない。 哲 :定義を重んじるコンピュータの世界でも、曖昧なところもある んだなあ。 啓二:2進の3けたを使うことは少ないように思えるけれど、意外に 使うことは多いんだ。例えば、交通信号。赤、黄、緑として、 1回の動作サイクルを表現すると、(赤黄緑)=(100)→ (010)→(001)→(010)→(100)となる。 また、光の3原色はR、G、Bでこれを発光するフルカラーの LEDなんかの制御のときは、重宝だよ。 哲 :C言語に8進の表現の%Oがあるなあ。 啓二:あれは、DECのコンピュータを利用したからさ。DECの ミニコンピュータのアセンブラを機械語にするときに、2進 の3けたごとに区切って表現したことが、C言語の仕様まで 影響したんだ。 哲 :8進と16進の表現があるのは、何故かな。 統一してくれた方が、嬉しいのに。 啓二:3ビット表現と4ビット表現では、1けたに含められる情報量 に違いがある。3ビットならば8通り、4ビットならば16通り で、情報量が異なるんだ。だから、長いけたの2進を圧縮して 表現するには、16進が便利なんだ。 哲 :相互変換の計算はやらないのか。 啓二:相互変換の表が頭に入っているならば、必要ないよ。 そんなことをやるよりも、もっと大事なことがあるから。 哲 :何だ、それは。 啓二:論理演算だよ。論理和、論理積、排他的論理和の3つは必要。 これらを活用すると、プログラムが短くなったり、高速に なることもある。また、多数ビットの積計算が必要なとき にも使える。 哲 :論理和と論理積は簡単に覚えられるんだが、排他的論理和は いつもわからなくなるんだ。何か覚え方があるのかなあ。 啓二:生物と同じだよ。 哲 :何だ、それ。 啓二:だから、生物と同じだって。同じ性では子供ができないのさ。 0をメス、1をオスとすると、子供ができるのは、0と1、 1と0、この2つの組み合わせしかないだろう。 哲 :本当だ。 啓二:算術演算も論理演算も身の周りにあるのさ。そのアナロジー がわかると、覚えることは少なくても済むよ。 哲 :論理演算の例は、他に何かあるのかい。 啓二:あるよ。40℃のお湯と40℃のお湯を混ぜても、40℃のお湯の ままだろう。これは、論理和の1+1=1と同じだろう。 哲 :なるほど。そうやって、覚える量を減らしてたのか。 啓二:覚えるだけでは、忘れたときに困るでしょう。同じ覚えるにしても、 忘れにくく、思い出せるように工夫しておくのさ。今日も、お疲れ。