はじめに
基本情報技術者試験の離散数学分野における2進数表記について、知っておくべき重要な知識を以下にまとめました。(基本は知ってる前提。中級者向け)
16進数ABCDを右に2ビットずらす方法
16進数ABCDを右に2ビットずらす手順は次の通りです。
- 各桁を4ビットの2進数に変換します。
- A → 1010
- B → 1011
- C → 1100
- D → 1101
- それぞれの2進数の前に00を付け加え、右に2ビットずらします。
- A: 00 1010 → 00 0010
- B: 00 1011 → 00 0010
- C: 00 1100 → 00 0011
- D: 00 1101 → 00 0011
- ずらした結果を前4ビットごとにまとめ、16進数に戻します。
- 00 0010 → 2
- 00 0010 → 2
- 00 0011 → 3
- 00 0011 → 3
最終的に、ABCDを右に2ビットずらすと、得られる16進数は2233になります。
10進数の少数部の2進数変換
次の手順で小数を2進数に変換する方法を説明します。
- 小数を2倍します。
- 得られた結果の整数部を取り出し、左から順に並べていきます。最初の値は元の小数の整数部になります。
- 小数部が0になるまでこのプロセスを繰り返します。
たとえば、0.125を2進数に変換する場合を見てみましょう。
- 0.125を2倍すると、0.25になります。
- 0.25を2倍すると、0.5になります。
- 0.5を2倍すると、1.0になります。
この時点で小数部が0になったため、プロセスは終了です。得られた整数部を並べると、0.125は2進数で0.01となります。
数字を8で割ったあまりが下位3ビットになる理由
まず、8で割ったあまりは0から7の範囲で表されます。この範囲に収まる数値は、2進数表現において下位3ビットで完全に表現可能です。具体的には、割り切れる数値の場合、その下位3ビットはすべて0(000)になります。これは、他のいかなる値においても同様で、割り切れた場合にはあらゆる部分が消失するからです。
さらに、下位4ビットを求めたい場合は16で割ったあまりを考慮する必要があります。16で割った場合、あまりは0から15の範囲となり、下位4ビット全体を表現することが可能です。このように、割る数に応じて下位のビットがどのように対応するかが明らかになります。