未開始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. 1

    解答:マスク1100とのANDを使います。1011 AND 1100 = 1000です。

  2. 2

    残す位置を1、消す位置を0にしたマスク1100を作る。

  3. 3

    1011 AND 1100を左から計算すると1000になる。

  4. 4

    1011 OR 1100は1111。ORでは元の点灯情報を消せないので目的に合わない。

4

別の条件で試す

0101 OR 0011 の結果は?

条件と処理の意味を確かめて選びましょう。

最も適切な答え
5

確認問題の前に

  • 2進数を桁の重みで読む

  • 4ビットと16進数1桁を対応させる

  • AND・ORを目的に応じて使う

仕上げ

確認問題

確認問題に合格するとこの単元を完了します。

合格ラインを読み込み中