基礎理論
平成25年度 春期 基本情報技術者試験 午前 問1
16 ビットの 2 進数 n を 16 進数の各桁に分けて,下位の桁から順にスタックに格納するために,次の手順を 4 回繰り返す。a, b に入る適切な語句の組合せはどれか。ここで,XXXX₁₆は 16 進数 XXXX を表す。
〔手順〕
(1) a をxに代入する。
(2) x をスタックにプッシュする。
(3) n を b 論理シフトする。
| a | b | |
|---|---|---|
| ア | n AND 000F₁₆ | 左に 4 ビット |
| イ | n AND 000F₁₆ | 右に 4 ビット |
| ウ | n AND FFF0₁₆ | 左に 4 ビット |
| エ | n AND FFF0₁₆ | 右に 4 ビット |
- ア a: n AND 000F₁₆ / b: 左に 4 ビット
- イ a: n AND 000F₁₆ / b: 右に 4 ビット
- ウ a: n AND FFF0₁₆ / b: 左に 4 ビット
- エ a: n AND FFF0₁₆ / b: 右に 4 ビット
出典:平成25年度 春期 基本情報技術者試験 午前 問1
答えと解説を見る
正解:イ
覚える知識
論理積(AND)マスクとシフトによる16進桁の抽出
AND演算でマスクした部分以外を0にして特定ビットを抽出し、右シフトで次の桁を最下位へ移す。
この問題で必要なこと
下位4ビットを取り出すには000F₁₆とのANDでマスクし、次の桁へ進むには右に4ビット論理シフトする。
ひっかけ
左シフトでは上位桁が最下位に来ず、FFF0でマスクすると下位4ビットが消えて逆の桁を取り出してしまう。
この知識の出題:本試験系 3 回・免除試験 2 回(公開問題での観測値)