こんにちは、koyukaisa.workの真田夕起です!
初めて訪問してくださった方も、いつも読んでくださっている方も、ありがとうございます。本日も楽しんでいただける記事をお届けしますので、どうぞリラックスしてお読みください。
家族との学び:基本情報技術者試験の挑戦
長女と一緒に基本情報技術者試験の本を読んで、勉強をしています。お互いに今日読み進めたページ数をチャットで報告し合うのが日課です。学習項目の最初から2進数や8進数、16進数が出てきて、ちょっと大変ですが、これがわからないと困るため、頑張っています。
2進数に親しむための日常活用
実は、プログラミング言語であるPythonの勉強をしているときにも、2進数が初期に出てきました。そのときは特に自分で10進数から2進数に変換する必要がなかったのですが、資格取得を目的とはしていなくても、わからないままにしておくのはもったいないと感じました。
そこで、長女とチャットで基本情報技術者試験の本を読んだところまでを報告し合っているので、そのページ数を2進数に変換して報告することにしました。例えば、297ページまで読んだ場合、次のように送ります:
p.0b100101001
余裕があるときはさらに8進数と16進数変換もしています:
p.0b100101001
p.0o451
p.0x129
このようにして日常的に2進数に慣れることで、計算が楽しくなり、理解が深まることが期待できます。
2進数計算の気づき:簡単な方法
例えば、2進数で「10110」と表現された数を計算するには、16×1+8×0+4×1+2×1+1×0=22といった手順を踏むことが多いのですが、桁が上がるにつれて計算が複雑になりがちです。
しかし、ある日、面倒な計算をしている最中に、ある簡単な方法に気づきました。
例えば、「1111」は2進数で15を意味します。そして「10000」は16です。このように、全ての桁が1の場合、その数は次の桁の数(全て0の数)より1少ない数になります。
具体的には、
10000 = 16 + (8×0) + (4×0) + (2×0) + (1×0) = 16
1111 = (8×1) + (4×1) + (2×1) + (1×1) = 15
どこか1つだけ0がある場合(例えば「1101」)なら、15(全て1の場合)から足りない数(ここでは2)を引けば計算が楽になります。つまり、8+4+(2×0)+1=13と計算するよりも、15-2とした方が簡単です。
計算の効率化
桁数が少ない場合は足し算の方が楽かもしれませんが、桁数が増えるにつれて、1と0のどちらが多いか確認してから計算方法を選んだ方が効率的です。
例えば、「111101111」は、256+128+64+32+8+4+2+1と計算するよりも、511-16と計算する方が圧倒的に早く、簡単です。
学びのシェア
この発見をチャットでシェアしたところ、長女も2進数に親しみを持つことができました。これにより、計算が楽しくなり、より理解が深まりました。
ということで、今回の記事はここまでです。最後までお読みいただき、本当にありがとうございます!
今後も皆さんの役に立つ情報をどんどんお届けしていきますので、次回もお楽しみに。ご質問や感想があれば、コメント欄で気軽に教えてくださいね。真田夕起でした!!
チャンネル登録やブックマーク、いいねやコメントをいただけるととても嬉しいです。これからもどうぞよろしくお願いいたします。