平成26年度 春期 午前 問22
ハードウェア
シフトレジスタの値
クロックの立上りエッジでデータを最下位ビットから取り込んで上位方向へシフトし,ストローブの立上りエッジで値を確定する 8 ビットのシリアル入力パラレル出力シフトレジスタがある。各信号の波形を観測した結果が図のとおりであるとき,シフトレジスタの値はどれか。ここで,数値は 16 進数で表記している。〔図:上から「データ」「ストローブ」「クロック」の3本を同じ時間軸で並べた波形。クロックの立上りは全部で10回あり,その各時点と,ストローブの立上りに,縦の点線が引かれている。データは各クロック立上りの直後に値が変わる描き方で,立上り1回目から順に 高・高・低・低・低・高・高・低・高・高 と読める。ストローブは9回目と10回目のクロック立上りの間で1回だけ立ち上がる。〕
- ア63
- イ8D
- ウB1
- エC6
答えと解説を見る
✓ これが正解イ8D
解説
八ビットの器に九回入れるので、最初の一回が押し出されます。
設問は、波形を読んでシフトレジスタに残る値を求めさせています。決め手は三つです。一つ目は取り込む時点で、取り込みはクロックの立上りで起こり、図ではデータが立上りの直後に変化していますから、拾われるのは変化する前の値です。高いときを 1、低いときを 0 として立上りの順に並べると 1,1,0,0,0,1,1,0,1,1 の十個になります。二つ目は確定の時点で、ストローブの立上りは九回目と十回目のあいだにありますから、確定するのは九ビット入れた時点の中身です。三つ目は器の幅です。レジスタは八ビットしかないのに九ビット入れたので、いちばん古い一回目が押し出されます。残るのは二回目から九回目までの 1,0,0,0,1,1,0,1 です。最下位から取り込んで上位方向へシフトするという条件から、先に入れたものほど上へ運ばれ、二回目が最上位になります。二進の 1000 1101 を十六進で表すと 8D です。
ほかの選択肢はなぜ違うのか
- ウB1:確定する八ビットの選び方は合っていますが、先に入れた側と後から入れた側の上下を逆にした形です。シフトの向きを取り違えると、並びがそっくり裏返った値が出てきます。
- エC6:あふれる一ビットを捨てず、いちばん古い側から数えて八ビットで区切った形です。取り込んだ回数と器の幅を突き合わせていないため、九回目に入れた値が抜け落ちています。
- ア63:押し出しを見落としたうえに、上下の向きまで逆にした形です。二つの取り違えが重なっているので、どちらか一方だけを直しても、やはり別の誤った値にしかなりません。
出典:平成26年度 春期 応用情報技術者試験 午前 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)