令和3年度秋期 応用情報技術者試験 午前 問23

分野:ハードウェア|実際に出題されたIPA過去問題

マイコンの汎用入出力ポートに接続されたLED1を,LED2の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として,適切なものはどれか。ここで,使用されている汎用入出力ポートのビットは全て出力モードに設定されていて,出力値の読出しが可能で,この操作の間に汎用入出力ポートに対する他の操作は行われないものとする。

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  汎用入出力ポートから読み出した値と16進数の08との論理積
  2.  汎用入出力ポートから読み出した値と16進数の08との論理和
  3.  汎用入出力ポートから読み出した値と16進数の48との論理積
  4.  汎用入出力ポートから読み出した値と16進数の48との論理和
解答・解説を見る

正解:イ

AI解説

特定のビット(LED1に対応するビット)だけを1にし、他のビット(LED2など)の状態を変えたくない場合は、現在の出力値を読み出したうえで、目的のビットだけが1になっているマスク値との論理和(OR)を取ればよい。ORは対象ビットを1に確定させる一方、他のビットは元の値のまま保持されるからである。 ア: 論理積(AND)でマスクを取ると、マスクで0になっているビットは強制的に0にされてしまうため、LED2の状態を変えずにLED1だけ点灯させる目的には使えない。 イ: 読み出した値と、LED1に対応するビットのみが1のマスク(16進数08)との論理和を取れば、LED1のビットだけを1にしつつ他のビット(LED2など)の値は変化しないため、これが正解である。 ウ: 16進数48のマスクは複数ビット(LED1以外のビットも含む)を対象にしており、論理積を取ると他のビットも0にされてしまうため意図した動作にならない。 エ: 16進数48のマスクとの論理和は、LED1以外の余分なビットまで1にしてしまう可能性があり、LED2の状態を変えずにLED1だけを点灯させるという条件に合わない。 💡 特定ビットだけを1にしたいときはOR、特定ビットだけを0にしたいときはAND(反転マスクとの論理積)を使う、という使い分けを覚えておくと役立つ。

出典:令和3年度 秋期 応用情報技術者試験 午前 問23 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「ハードウェア」分野の攻略ポイント

論理回路・電気電子・半導体・機器・組込みハードウェア・センサ/アクチュエータが範囲です。論理回路の真理値表は書けば必ず解けるため、時間さえかければ確実に取れる問題が多い分野です。

ハードウェアの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(ハードウェア)の過去問