本日は、基礎理論①だけを行なう予定でしたが、思いのほか早く終わったため、基礎理論②にも取り掛かってみることにしました。
では、いってみましょー!
基本情報技術者~基礎理論②~
論理演算子の優先順位について
これは絶対に覚えておきましょう。特にANDとORのどちらの優先順位が高いのでしょうか。きちんとルールが定められていますので、しっかりと覚えておきましょう。
論理演算子の優先順位
括弧 > NOT > AND > OR
ANDはORよりも優先され、優遇されるということを覚えておきましょう。「A OR B AND C」などというような式が出たら、先に計算するのは「B AND C」です。お間違えの無いように!
下位4ビットが変化しない操作はどれか
基本情報技術者平成28年度の問題で次のようなものがありました。
問題
8ビットのビット列の下位4ビットが変化しない操作はどれか。
解答
まず、解答の選択肢を羅列して、それぞれについて考えていきます。
ア.16進表記0Fのビット列との排他的論理和をとる。
イ.16進表記0Fのビット列との否定論理積をとる。
ウ.16進表記0Fのビット列との論理積をとる。
エ.16進表記0Fのビット列との論理和をとる。
仮に10101010という8ビット列を使用して、ア~エを解いていきます。
ア.
10101010
XOR 00001111
10100101
イ.
10101010
NAND 00001111
11110101
ウ.
10101010
AND 00001111
00001010
エ.
10101010
OR 00001111
10101111
これらより、下位4ビットが変化していないのはウ.となります。
全ビットを反転する操作はどれか
基本情報技術者令和元年度の問題で次のようなものがありました。
問題
8ビットの値の全ビットを反転する操作はどれか。
解答
まず、解答の選択肢を羅列して、それぞれについて考えていきます。
ア.16進表記 00 のビット列と排他的論理和をとる。
イ.16進表記 00 のビット列と論理和をとる。
ウ.16進表記 FF のビット列と排他的論理和をとる。
エ.16進表記 FF のビット列と論理和をとる。
仮に10101010という8ビット列を使用して、ア~エを解いていきます。
ア.
10101010
XOR 00000000
10101010
イ.
10101010
OR 00000000
10101010
ウ.
10101010
XOR 11111111
01010101
エ.
10101010
OR 11111111
11111111
これらより、全ビット反転しているのはウ.となります。
論理回路
論理演算 | MIL記号 |
---|---|
論理積 (AND) | ![]() |
論理和 (OR) | ![]() |
否定 (NOT) | ![]() |
否定論理積 (NAND) | ![]() |
否定論理和 (NOR) | ![]() |
排他的論理和 (XOR) | ![]() |
これはこういうものなので、暗記しておきましょう。
複雑な論理回路の解を計算するには、ベン図を用いると楽に計算ができます。ベン図の習得は必須といえます。
半加算器と全加算器
加算器について学びます。加算器には、桁上りを気にしない「半加算器」と桁上りも考慮する「全加算器」の2種類があります。
「全加算器」を作成する前に「半加算器」について理解を深めておきます。すると、「全加算器」を簡単に作成することができるようになります。
半加算器
半加算器を真理値表で表します。
入力 | 出力 | ||
X | Y | C | S |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
これはそれぞれ、
0 + 0 = 00
0 + 1 = 01
1 + 0 = 01
1 + 1 = 10
という、2進数の加算を「桁上りをC」「加算結果をS」として表したものです。
つまり、XとYの加算結果は、C(Carry out)とS(Sum)の2つの論理回路で表すことができます。
CがAND回路、SがXOR回路であるということは予想がつきますね。
全加算器
全加算器を真理値表で表します。新たに下の位からの桁上りを加味したC'を加えた、入力X、Y、C'と出力C、Sで構成されたものとなります。
入力 | 出力 | |||
X | Y | C' | C | S |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
これを論理回路に落とし込んだ人がいます。その図がこちらです。

X と Y を 半加算器(1) で加算します。
その結果である S と C' を 半加算器(2) で加算します。
その結果である S が 全加算器の S となります。
半加算器(1) の C と 半加算器(2) の C を OR演算します。
その結果である C が 全加算器の C となります。
OR演算する理由としましては、 半加算器 (1) または 半加算器 (2) のどちらかが桁上がりすると、それがすなわち全加算器の桁上がりになるからです。「または」は OR演算を意味しますので、OR演算をするということです。
全加算器の論理回路はよく出題されるので、覚えておきましょう。
後置記法(逆ポーランド記法)の解き方
基本情報技術者平成24年度の試験に次のような問題がありました。
問題
後置記法(逆ポーランド記法)では、例えば、式Y=(A-B)×CをYAB-C×=と表現する。次の式を後置記法で表現したものはどれか。
Y=(A+B)×(C-D÷E)
解答
四則演算の法則に則り、括弧>かけ算・わり算>たし算・ひき算の順で表現していきます。
Y=(A B+)×(C-(D E÷))
Y=(A B+)×(C D E÷-)
Y=A B+ C D E÷-×
Y A B+ C D E÷-×=
従って、解はY A B+ C D E÷-×=となります。
基本情報技術者過去問道場令和5年(科目A)を受けた
基礎理論②までの範囲を昨日今日と2日に渡ってブログにまとめているのですが、午前中は基本情報技術者過去問道場の令和5年(科目A)を解いてみました。
その結果がこちら。

まぁ、初回で40%取れればいいと思っていましたので上出来だと思います。90分あるとはいえ、60問で60%以上、つまり36問以上正解しないといけないというのは、案外ハードルが高いかも知れないと感じました。
このテストもあと2問正解していれば合格圏内というわけですが、その2問を正解した分、他のところで2問落としたら意味がありません。
しっかり加点していけるよう、これから頑張っていこうと思いました。
最後に
いかがでしたでしょうか?
基本情報技術者勉強2日ということで、疲れました。
明日からゴールデンウィークが始まります。始まってしまいます。
その間、私は勉強休止させていただくことになると思います。多分。(でも継続したほうがいいのかなぁ⋯)
悩みます。
そして、こちらが参考にさせていただいているテキストです。


ではでは、参考までに
コメント