平成31年度 春期 午前 問2
離散数学
論理積に関する問題
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
- ア16進数 0F との AND をとる。
- イ16進数 0F との OR をとる。
- ウ16進数 7F との AND をとる。
- エ16進数 FF との XOR(排他的論理和)をとる。
答えと解説を見る
✓ これが正解ウ16進数 7F との AND をとる。
解説
下位七桁だけを残すので、7F との論理積を取ります。
特定の桁だけを残す操作は、ビットマスクと呼ばれます。残したい桁に一を、消したい桁に零を置いた値を用意します。その値と論理積を取れば、零の桁はすべて零になります。一の桁は、元の値がそのまま残ります。この問いで残したいのは、最上位を除いた下位の七桁です。ですからマスクは、最上位が零で残り七桁が一の値になります。それを十六進で書くと 7F です。最上位のパリティビットだけが落ち、他は変わりません。マスクを 0F にすると、残るのは下位の四桁だけになります。論理和を取ると、消すどころか一を立ててしまいます。排他的論理和を FF と取れば、全桁が反転します。どの桁を残すかと、どの演算を使うかの二つを合わせて選びます。マスクの値は、残す桁数から二進で組み立てると間違えません。七桁なら一を七つ並べます。
ほかの選択肢はなぜ違うのか
- ア16進数 0F との AND をとる。:マスクの値が 0F なので、残るのは下位の四桁だけです。必要な七桁のうち三桁まで落ちてしまいます。演算の選び方は合っていますが、桁数が足りません。十六進の一桁は二進の四桁にあたります。桁数の見積りを先に立てます。
- イ16進数 0F との OR をとる。:論理和は、マスクの一の桁を強制的に一にします。残すのではなく立てる操作になってしまいます。最上位も落ちないまま残ります。消したいときに使う演算ではありません。元が零の桁も一に変わります。情報が失われる向きです。
- エ16進数 FF との XOR(排他的論理…:FF との排他的論理和は、全部の桁を反転させます。最上位も含めて値が変わってしまいます。反転は、桁を取り出す操作ではありません。特定の桁だけ反転させたいときに使う形です。元の値を復元したいときに使います。同じ操作を二度行えば元に戻ります。
この問題の用語
- パリティビット誤りを見つけるために付ける1ビットの検査用データ。1の個数が偶数か奇数かをそろえておき、1ビットの誤りを検出します。
- OR数学の手法を使って、いくつかの案から最も有利なものを選ぶ考え方です。期待される費用や利益を計算して比べるときに使います。
出典:平成31年度 春期 基本情報技術者試験 午前 問2
同じ用語が出る問題
- 令和7年度 科目A 問6:SQLに関する問題(OR)
- 令和6年度 科目A 問1:X□Yの真理値表(OR)
- 令和元年度 秋期 午前 問22:論理積に関する問題(OR)
- 平成31年度 春期 午前 問22(OR)
- 平成26年度 春期 午前 問2:パリティビットに関する問題(パリティビット)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)