修了試験 2013-01-27実施分 基本情報技術者試験 問1
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
正答3
解説
正解は3です。 特定のビットだけを取り出すには、残したい位置を1、消したい位置を0にしたマスクとのAND(論理積)をとります。 8ビットのうち最上位がパリティビットなので、下位7ビットを残すマスクは2進数01111111です。 これを16進数で表すと7Fになります。 【選択肢別解説】 1:× 0F(00001111)とのANDでは下位4ビットしか残りません。 上位4ビットはすべて0になるので、下位7ビットのうち3ビットが失われます。 2:× 0FとのOR(論理和)は、下位4ビットを強制的に1にする操作です。 ビットを取り出す操作ではなく、元の値も壊れます。 3:○ 7F(01111111)とのANDでは、最上位ビットが0に消され、下位7ビットはそのまま残ります。 これでパリティビット以外の7ビットだけを得られます。 4:× FF(11111111)とのXOR(排他的論理和)は、全ビットを反転させる操作です。 下位7ビットの値が変わってしまうので、取り出しにはなりません。 【ポイント】 ビット演算の定番は「ANDで取り出す(0にする)」「ORで1にする」「XORで反転する」の3つです。 マスクのどのビットを1にするかを2進数で書いてから16進数に直すと、確実に解けます。まとめて解く
修了試験 2013-01-27実施分を通しで解く(80問)→