お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

二進数を素人の人でもわかるように説明するには???

2009/06/11 21:03
  • このエントリーをはてなブックマークに追加

本日、某所でプログラマー養成講座の講師をしました。

授業で型変換を説明する際に、127超えたint型の値を
byte型(-128から+127までしか入らない小さい箱と授業では呼んでいる)

に入れると、
変数の中に入っている値が狂う話をするときに、
私は苦悩しました。

内容としてはint型の変数が256という値を持っているけど、
それをbyte型の変数に代入すると、2と表示される。
さあ、なぜか?の説明です。

 

ペアの講師の先生は大変優秀な方なので、
正しい知識を二進数の説明をして噛み砕いて教えて下さり、
経験者の方は原理・理屈がわかって大変満足したものの、
まったくのパソコン初心者の方々には二進数の理解はむずかしく、
どう説明したらいいのかな?と困ったわけです。

 

私が正しくないけどイメージとして、
「おじいさんの家にカステラがありました。
私は家に持ち帰りたかったので、256と刻印されたカステラを切って
タッパーに入れることにしました。

タッパーに入る容量は127までだったので、
2と書かれた部分までは入ったものの、
残りは入りませんでした。

タッパーに入るように切った行為が型変換(byte)で、
2だけ残ったのは、入らない部分が切り捨てられたから」

と説明してはどうかとペアの先生や一部の生徒さんに打診したところ、

生徒さんからは「知りたいのはなぜ2になったのかなので、
片岡先生の説明だとその原因が分からない」とあっさり却下・・・。

ペアの先生からも、「カステラを切るのはいいけど、だったらbyte型は+127まではいるんだから、
127を超えた部分が切り捨てられて127と表示されるのではないか?と思う生徒さんがいそうなので、
説明が難しいけど、二進数をいきなり教えて原理を理解してもらったほうがいいのではないか?」
とアドバイスをいただきましした。

というわけで、私のカステラたとえ話は却下ということで、
なにか初心者の方にわかりやすい説明をしたいのですが、
ネットを検索してもわけがわからない説明ばかりで、
どうしたものかと思っています。

そこで、CNETのみなさまがどのように二進数を理解されたのか、
体験談コメントをいただけましたら大変ありがたいです。

差支えがない範囲で構いませんので、
どうぞ、よろしくお願いいたします。

 

追伸】
ちなみに、2の0乗がどうして1なのかも気になるところです。

生徒さんからどうして2の0乗は0ではないのですか?

と質問されて、ただいま、調査中。

エンジニアやパソコン講師たるもの、

パソコンの原理を知ることは大事ですね・・・。

ちなみに、私はプログラミングを勉強した際に
2の0乗は1なんだと直に?受け入れてしまい、
今まで疑問に感じませんでした。

他の皆様はどう理解されているんでしょうね?

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー