基礎理論
基本情報技術者試験 科目A免除 修了試験 20150125 実施分 問1
16 ビットの 2 進数 n を 16 進数の各桁に分けて,下位の桁から順にスタックに格納するために,次の手順を 4 回繰り返す。a,b に入る適切な語句の組合せはどれか。ここで,XXXX_16 は 16 進数 XXXX を表す。
〔手順〕
(1) [a] を x に代入する。
(2) x をスタックにプッシュする。
(3) n を [b] 論理シフトする。
選択肢の表(列: a, b)
ア | n AND 000F_16 | 左に 4 ビット
イ | n AND 000F_16 | 右に 4 ビット
ウ | n AND FFF0_16 | 左に 4 ビット
エ | n AND FFF0_16 | 右に 4 ビット
- ア a: n AND 000F_16 / b: 左に 4 ビット
- イ a: n AND 000F_16 / b: 右に 4 ビット
- ウ a: n AND FFF0_16 / b: 左に 4 ビット
- エ a: n AND FFF0_16 / b: 右に 4 ビット
出典:基本情報技術者試験 科目A免除 修了試験 20150125 実施分 問1
答えと解説を見る
正解:イ
覚える知識
論理積(AND)マスクとシフトによる16進桁の抽出
16進1桁(4ビット)を取り出すには000F_16とのANDでマスクし、右に4ビット論理シフトして次の桁を下位へ移す。
この問題で必要なこと
下位4ビット(16進1桁)はn AND 000Fで取り出せる。次の桁を下位へ寄せるには右シフトする。
ひっかけ
FFF0とのANDは下位桁を消してしまう。左シフトは上位桁を逃がさず下位に0を入れるだけで、次の桁を取り出せない。
この知識の出題:本試験系 3 回・免除試験 2 回(公開問題での観測値)