過去問解きまくり研究所 ホーム

平成25年度 春期 午前 問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 ビット
答えと解説を見る

✓ これが正解イn AND 000F₁₆ 右に 4 ビット

解説

下位4ビットだけを残し、右へ4ビットずらします。

16進数の1桁は、2進数の4ビットにちょうど対応します。ですから下位の桁を1つ取り出すことは、16ビットのうち下の4ビットだけを残すことと同じ意味になります。ビットごとの論理積は、相手の値で1が立っている位置をそのまま通し、0にしてある位置を消す働きをします。残したい側に1を並べた値を用意する、というのが前半の空欄の考え方です。後半の空欄は、繰返しのたびに別の桁を同じ場所へ運ぶための操作です。すでに取り出した桁を追い出し、上にある桁を下へ降ろす方向を選びます。16進数で1A2Bという値を4回まわすと、B、2、A、1の順に積まれ、下位の桁から順にという条件と一致します。

ほかの選択肢はなぜ違うのか

出典:平成25年度 春期 基本情報技術者試験 午前 問1(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)