未開始約10分
2進数・16進数と論理演算を使う
桁の重みとビットごとの演算を理解し、必要な部分を取り出すマスクを考えます。
この教材でできるようになること
2進数を桁の重みで読む
4ビットと16進数1桁を対応させる
AND・ORを目的に応じて使う
1
考え方と手順
2進数の各桁の重みは右から1、2、4、8…です。4ビットなら0000〜1111の16通りを表し、16進数の0〜Fの1桁に対応します。例えば1010は8+2=10で、16進数ではAです。
ANDは両方が1の桁だけ1、ORは少なくとも片方が1の桁を1にします。整数の足し算と違い、ORに繰り上がりはありません。ANDで1を置いたマスクの桁は元の値を残し、0の桁は消えます。画像やフラグに使うときは、1や0が何を意味するかを問題文で確認してから演算を選びましょう。
2
例題
4個のランプの点灯状態を左から4ビットで表します。1は点灯、0は消灯です。現在の状態は1011で、左2個の状態だけを残し、右2個を消灯したいとします。
問い:ANDとORのどちらを使い、どの4ビットのマスクを組み合わせればよいでしょうか? 演算後の値も求めましょう。
3
解答と考え方
- 1
解答:マスク1100とのANDを使います。1011 AND 1100 = 1000です。
- 2
残す位置を1、消す位置を0にしたマスク1100を作る。
- 3
1011 AND 1100を左から計算すると1000になる。
- 4
1011 OR 1100は1111。ORでは元の点灯情報を消せないので目的に合わない。
4
別の条件で試す
0101 OR 0011 の結果は?
条件と処理の意味を確かめて選びましょう。
5
確認問題の前に
2進数を桁の重みで読む
4ビットと16進数1桁を対応させる
AND・ORを目的に応じて使う
仕上げ
確認問題
確認問題に合格するとこの単元を完了します。