離散数学 (全101問中88問目)

No.88

8ビットのビット列の下位4ビットが変化しない操作はどれか。
  • 16進表記 0F のビット列との論理積をとる。
  • 16進表記 0F のビット列との論理和をとる。
  • 16進表記 0F のビット列との排他的論理和をとる。
  • 16進表記 0F のビット列との否定論理積をとる。
  • [この問題の出題歴]
  • 基本情報技術者 H28秋期 問1

分類

テクノロジ系 » 基礎理論 » 離散数学

正解

解説

各論理演算は次のような操作を意味しています。
論理積(AND)
2つのビットが両方とも1のときにだけ1を出力し、それ以外は0を出力する。
論理和(OR)
2つのビットのどちらかが1であれば1を出力し、両方とも0のときは0を出力する。
排他的論理和(XOR)
2つのビットが異なるときは1を出力し、同じときは0を出力する。
否定論理積(NAND=Not AND)
AND演算の結果を反転した演算で、2つのビットが両方とも1のときにだけ0を出力し、それ以外は1を出力する。
09.gif/image-size:374×266
16進表記 0F は2進表記で「00001111」です。この「00001111」と8ビットのビット列に対して、それぞれの論理演算を行うことで正解を導きます。ここでは演算対象となる8ビットのビット列に、上位4ビットと下位4ビットそれぞれで1と0の変化が把握しやすい「10101010」を用いています。
  • 10101010 AND 00001111=00001010
  • 10101010 OR 00001111=10101111
  • 10101010 XOR 00001111=10100101
  • 10101010 NAND 00001111=11110101
各演算結果の下位4ビットに注目すると、演算前と比較して被演算ビット列の下位4ビットが変化していないのはAND演算(論理積)ということがわかります。

一般に任意のビット列から特定のビット列を取り出したいときにはAND演算、任意のビット列のうち特定のビット列を反転させたいときにはXOR演算を使うことができるので覚えておきましょう。
© 2010-2021 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop