問題プレビューID: 2e804ff6

問 1

16 ビットの 2 進数 nn を 16 進数の各桁に分けて,下位の桁から順にスタックに格納するために,次の手順を 4 回繰り返す。a, b に入る適切な語句の組合せはどれか。ここで,XXXX16XXXX_{16} は 16 進数 XXXX を表す。

〔手順〕 (1) [ a ] を xx に代入する。 (2) xx をスタックにプッシュする。 (3) nn を [ b ] 論理シフトする。

Labelab
ア

n AND 000F16n \text{ AND } 000F_{16}

左に 4 ビット

イ

n AND 000F16n \text{ AND } 000F_{16}

右に 4 ビット

ウ

n AND FFF016n \text{ AND } FFF0_{16}

左に 4 ビット

エ

n AND FFF016n \text{ AND } FFF0_{16}

右に 4 ビット

解説

16 ビットの 2 進数 nn から下位 4 ビットずつを取り出して 16 進数の各桁に分ける。各繰返しでは,まず下位 4 ビットだけを取り出すために,nn と 000F16000F_{16}(下位 4 ビットが 1)との AND をとって xx に代入する(a)。次に xx をスタックにプッシュし,処理済みの下位 4 ビットを捨てて次の 4 ビットを下位に移動させるために,nn を右に 4 ビット論理シフトする(b)。したがって,a は n AND 000F16n \text{ AND } 000F_{16},b は「右に 4 ビット」であり,正解は「イ」である。