応用情報技術者試験 応用情報技術者試験 令和3年度秋期 午前 問23: マイコンの汎用入出力ポートに接続された LED1 を,LED2 の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として,適切なものはどれか。ここで,
マイコンの汎用入出力ポートに接続された LED1 を,LED2 の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として,適切なものはどれか。ここで,使用されている汎用入出力ポートのビットは全て出力モードに設定されていて,出力値の読出しが可能で,この操作の間に汎用入出力ポートに対する他の操作は行われないものとする。 75.19%
問題本文
マイコンの汎用入出力ポートに接続された LED1 を,LED2 の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として,適切なものはどれか。ここで,使用されている汎用入出力ポートのビットは全て出力モードに設定されていて,出力値の読出しが可能で,この操作の間に汎用入出力ポートに対する他の操作は行われないものとする。
選択肢
- ア.汎用入出力ポートから読み出した値と 16 進数の 08 との論理積
- イ.汎用入出力ポートから読み出した値と 16 進数の 08 との論理和
- ウ.汎用入出力ポートから読み出した値と 16 進数の 48 との論理積
- エ.汎用入出力ポートから読み出した値と 16 進数の 48 との論理和
正解
イ. 汎用入出力ポートから読み出した値と 16 進数の 08 との論理和
解説
回路図よりLED1はビット3、LED2はビット6に接続されている。LED2の状態を変えずにLED1だけを点灯(該当ビットを1に)するには、特定ビットだけを1にする「ビットのセット」を行えばよく、これは目的ビットだけが1のマスク値との論理和(OR)で実現できる。LED1のビット3だけを1にする16進数は 08(2進数 00001000)であり、読み出した値と 08 の論理和をとればビット3だけが1になり、他のビット(ビット6のLED2を含む)は元の値が保たれる。したがって正解はイ。
選択肢ごとの解説
- ア.08(00001000)との論理積をとると、ビット3以外がすべて0になりLED2(ビット6)が消えてしまううえ、ビット3も元が0なら0のまま点灯しないので誤り。
- イ.正しい。08(00001000)との論理和でビット3だけを1にでき、LED2を含む他ビットは元の値が保たれるため、LED2を変えずLED1を点灯できる。
- ウ.48(01001000)との論理積はビット3とビット6以外を0にし、さらにビット3・ビット6が元々0なら点灯できないため、LED1点灯にもLED2維持にもならず誤り。
- エ.48(01001000)との論理和はビット3に加えビット6(LED2)も強制的に1にしてしまい、LED2の状態を変えてしまうため誤り。
応用情報技術者試験 令和3年度秋期 午前 の過去問一覧へ戻る・問23