基礎理論

基本情報技術者試験 科目A免除 修了試験 201001 実施分 問1

16 ビットの 2 進数 n を 16 進数の各けたに分けて,下位のけたから順にスタックに格納するために,次の手順を 4 回繰り返す。a,b に入る適切な語句の組合せはどれか。ここで,xxxx₁₆は 16 進数 xxxx を表す。
〔手順〕 (1) [a] を x に代入する。 (2) x をスタックにプッシュする。 (3) n を [b] 論理シフトする。 選択肢表:
ab
アn AND 000F₁₆左に 4 ビット
イn AND 000F₁₆右に 4 ビット
ウn AND FFF0₁₆左に 4 ビット
エn AND FFF0₁₆右に 4 ビット
答えを選ぶ

出典:基本情報技術者試験 科目A免除 修了試験 201001 実施分 問1(問題文は IPA の公開問題。解説は当サイト作成)

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:イ

覚える知識

論理積(AND)マスクとシフトによる16進桁の抽出

ビット列から特定の桁だけを取り出すには、その桁を1・他を0としたマスクとANDを取り、桁を進めるには右シフトする。

この問題で必要なこと

下位4ビット(1桁)の取り出しは000FとのANDでマスクし、次の桁へ進むには右に4ビット論理シフトする。

ひっかけ

左シフトでは上位桁へ動いてしまい下位から順に取り出せない。FFF0とのANDは下位桁を消して上位桁を残す操作である。

この知識の出題:本試験系 3 回・免除試験 2 回(公開問題での観測値)。頻出知識ランキング211位(全1,254件中)。

この知識をアプリで解いて覚える レッスン「ビットマスクとXORを使ったビット操作」で学ぶ

同じ知識の過去問