問題プレビューID: 4efb9296

問 1

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

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

Labelab
ア

nn AND 000F16000F_{16}

左に 4 ビット

イ

nn AND 000F16000F_{16}

右に 4 ビット

ウ

nn AND FFF016FFF0_{16}

左に 4 ビット

エ

nn AND FFF016FFF0_{16}

右に 4 ビット

解説

16 ビットの 2 進数 nn から下位 4 ビット(16 進数 1 桁)を取り出すには,下位 4 ビットだけを残すマスク 000F16000F_{16} との論理積(AND)をとる。その結果を xx に代入してスタックにプッシュする。次に,次の桁を処理するために nn を右に 4 ビット論理シフトして,上位の桁を下位へ移動させる。これを 4 回繰り返すことで,下位の桁から順に各桁をスタックに格納できる。したがって,a は nn AND 000F16000F_{16},b は「右に 4 ビット」であり,正解は「イ」である。