論理積 とは
基本情報技術者 過去問 2019年(平成31年) 春期 午前 問2 を参考に考えてみます。
<問題>
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
(ア) 16進数0FとのANDをとる。
(イ) 16進数0FとのORをとる。
(ウ) 16進数7FとのANDをとる。
(エ) 16進数FFとのXOR(排他的論理和)をとる。
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
ここから私の思考です↓
ちなみに青字は文章を読んだ際の私の頭の中です。
<問題>
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
はい、わからん。はい、終了。
(ア) 16進数0FとのANDをとる。
(イ) 16進数0FとのORをとる。
(ウ) 16進数7FとのANDをとる。
(エ) 16進数FFとのXOR(排他的論理和)をとる。
勘で!正解は(ウ)でいいわ!
正解は(ウ)です。
ラッキー当たった!勘でも4分の1で当たるんだから書いとかなきゃ損よね。
論理積とは、どっちかが0なら0、どっちも1なら1をくれます。
ここからは私の思考のおかしかった部分です↓
<問題>
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
まず、パリティビットって何?
ふむ。ビットは1か0しかないから、奇数か偶数かになるように調節するための記号ってことね?
記号ってことで1ケタ使うから残りの7ケタを「得る」ためのビット演算と。
得るっていう表現がなんかしっくりこない。
この問題では8ビット符号のうち下位7ビットを取り出したいので、最上位ビットを0、下位7ビットを”1″としたビット列「0111 1111」を用意し、8ビット符号との論理積をとることで下位7ビットだけを取り出せます。
うん。わかんない。論理積ってなんだっけ?
両方が1なら1を、どちらかが0なら0をとると。ほしいところだけを1にしておくと。
こういうのは問題のパターンとして覚えておく方がよいかな。
「得る」場合は論理積、欲しい部分に1をあてる。
「得る」場合は論理積、欲しい部分に1をあてる。
大事な部分なので2回言いました。
また1つ賢くなりました。よかったよかった。
コメント