平成28年度 秋期 午前 問21
ハードウェア
ビットに関する問題
アノードコモン型7セグメント LED の点灯回路で,出力ポートに16進数で 92 を出力したときの表示状態はどれか。ここで,P7 を最上位ビット(MSB),P0 を最下位ビット(LSB)とし,ポートの出力が0のとき LED は点灯する。
回路:
出力ポート P0 → セグメント a P4 → セグメント e
P1 → セグメント b P5 → セグメント f
P2 → セグメント c P6 → セグメント g
P3 → セグメント d P7 → Dt(小数点)
(各線に抵抗が入り,LED の共通端子は Vcc 側=アノードコモン)
セグメントの位置(原典の凡例の図。読み取って文に置き換えた):
a (上の横棒)
f b (f=左上の縦棒,b=右上の縦棒)
g (中央の横棒)
e c (e=左下の縦棒,c=右下の縦棒)
d (下の横棒) Dt(右下の丸=小数点)
凡例: 白抜き=消灯 / 黒塗り=点灯
4肢はいずれも表示状態の図(黒塗り=点灯のセグメントを読み取って列挙した):
- ア点灯 a, b, c, d, g / 消灯 e, f / Dt 点灯(=「3.」の形)
- イ点灯 b, c, f, g / 消灯 a, d, e / Dt 消灯(=「4」の形)
- ウ点灯 a, c, d, f, g / 消灯 b, e / Dt 消灯(=「5」の形)
- エ点灯 a, d, e, f, g / 消灯 b, c / Dt 点灯(=「2.」の形)
答えと解説を見る
✓ これが正解ウ点灯 a, c, d, f, g / 消灯 b, e / Dt 消灯(=「5」の形)
解説
92は10010010で、点灯はa,c,d,f,gの5本です。
この問題は、出力ポートに置かれた1バイトの値を、ビットごとにセグメントへ配り直す作業です。まず16進数の92を2進数に直すと10010010になります。P7が最上位ビット、P0が最下位ビットなので、上位から順にP7=1、P6=0、P5=0、P4=1、P3=0、P2=0、P1=1、P0=0と並びます。次に配線の対応を当てます。P0からP6までがaからgまでの7本に、P7が小数点につながっていました。ここで見落としやすいのが点灯の向きです。共通端子が電源側につながっているので、ポートの出力が0のときに電流が流れて光ります。つまり0のビットを探すことになります。0なのはP0、P2、P3、P5、P6で、対応するのはa、c、d、f、gの5本です。1だったP1、P4、P7は消えたままなので、b、eと小数点は光りません。この並びに合う表示状態が正解でした。ほかの三つは、それぞれ別の値を出したときの表示にあたります。光っている側を0、消えている側を1として各肢からポートの値を組み立て直すと、いずれも92とは違う値になりました。
ほかの選択肢はなぜ違うのか
- ア点灯 a, b, c, d, g / 消…:光っているのがa、b、c、d、gの5本で、eとfが消え、小数点も光っている表示です。この並びからポートの値を戻すと00110000、16進数では30にあたります。設問が出したのは92なので合いません。
- イ点灯 b, c, f, g / 消灯 a…:b、c、f、gの4本だけが光り、a、d、eと小数点が消えている表示です。同じやり方で戻すと10011001、16進数では99になります。上位のビットが1で小数点が消える点までは一致しますが、下位の並びが食い違いました。
- エ点灯 a, d, e, f, g / 消…:a、d、e、f、gが光り、bとcが消え、小数点も光っている表示です。戻すと00000110、16進数では06になります。設問の値は上位のビットが1なので小数点は消えるはずで、その一点だけでもこの表示は外れます。
出典:平成28年度 秋期 基本情報技術者試験 午前 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)