論理演算・シフト演算と加算器(基礎理論)
学習のポイント
コンピュータ内部での演算には「論理演算」「シフト演算」「マスク処理」「四則演算」があります。四則演算では「加算演算」のしくみを押さえます。減算は補数を使用した加算処理、乗算は、加算の繰り返し処理、除算は、減算の繰り返し処理ということになります。「半加算器」「全加算器」「順序回路」の仕組みをしっかりと、理解しましょう。
1. 論理演算 | |||||||||||||||||||||||||
●論理演算
●論理積(AND) 両方のビットが「1」の時、結果が「1(真)」となる。 ●論理和(OR) いずれかが「1」の時、結果が「1(真)」となる。 ●論理否定(NOT) ビットを反転させる。 ●排他的論理和(XOR) ビットが等しければ、「0」、等しくなければ「1(真)」となる。 ●否定論理積(NAND) ANDの結果の否定 ●否定論理和(NOR) ORの結果の否定 ※論理演算の表現は、「ベン図」「真理値表」「MIL記号」などを使用します。 ※下記は、基本情報技術者試験で使用される図です。 |
|||||||||||||||||||||||||
2. シフト演算 | |||||||||||||||||||||||||
レジスタの内容を指定したビット数分だけシフトさせる命令です。以下の種類があります。
「算術左シフト」の場合は、nビットのシフトで、2n倍になる。 |
|||||||||||||||||||||||||
3. マスク処理 | |||||||||||||||||||||||||
●マスク処理
マスク処理とは、もとのビット列の特定の部分を取り出したりすることです。 通常は、「AND」を使用して「0の時は0」「1の時はもとと同じ」となります。 (11001010) 元の2進数の上位2桁以外を取り出す場合 (00111111) 取り出すビットは「1」とします。両者のAND演算を行うと、 (00001010) これで元のビット列の上位2桁以外を取り出すことが出来ました。
|
|||||||||||||||||||||||||
4. ド・モルガンの法則 | |||||||||||||||||||||||||
この法則を知っていると論理演算を簡潔に表現することが可能です。是非、覚えておいて下さい。 ●「・」は論理積 ●「+」は論理和 ●「-」は否定 を表現しています。 以下のように使用します。 過去問題 平成27年秋期 |
|||||||||||||||||||||||||
5. 半加算器 | |||||||||||||||||||||||||
半加算器とは「加算器の一つで、2進数の一桁の加算を行なう回路」 半加算器は、繰り上がりを考慮しない2進数1桁の加算と、1桁の繰り上がりを出力することができます。 半加算器だけでは2進数の一桁しか計算できず、下の桁からの繰り上がりも処理できないが、半加算器を二つ組み合わせると全加算器となり、下の桁からの繰り上がりを考慮した二進数の一桁の加算が実現されるようになります。 また、8桁(8ビット)の加算器を実現するには、全加算器を8個またき、半加算器を16個を用意すれば実現できます。 二つの入力「入力A」「入力B」より、1桁の答え「S」と1桁の繰り上がり「C」を出力します。 下記より、答え(S)は入力(A・B)の「排他的論理和(XOR)」で、繰り上がり(C)は入力(A・B)の「論理積(AND)」となります。 半加算器は、AND回路、OR回路、NOT回路より構成されます。 |
|||||||||||||||||||||||||
6. 全加算器 | |||||||||||||||||||||||||
全加算器とは、「2個の半加算器と1個のOR回路から構成され、繰り上がりを考慮した加算器」 全加算器を必要な桁数分を組み合わせれば、任意桁の2進数の加算を実現できることになります。 1つの全加算器は、2つの半加算器と一つのOR回路から構成されます。つまり、3入力(演算A・B・繰り上がりC1)で、2出力(演算結果のS・繰り上がりC)となります。 全加算器は、2つの半加算器とOR回路より構成されます。 |
|||||||||||||||||||||||||
7. 順序回路 | |||||||||||||||||||||||||
「順序回路」とは、「外部入力と回路自体の状態によって出力が決まる」というものです。代表的なものに「フリップフロップ回路」があります。これは「記憶装置」で利用されています。
|