back

論理演算


論理演算の基本式
二種の過去問を見ると必ず2つは出題されています。暗記に頼ってもいいから抑えておきたい箇所です。

○論理演算

論理和(OR)
A+B
真理値表
A B  OR
0 0 0
0 1 1
1 0 1
1 1 1
    論理積(AND)
A・B
真理値表
A B AND
0 0 0
0 1 0
1 0 0
1 1 1

 
 

排他的論理和(EOR
  _  _
A・B+A・B
真理値表
A B EOR
0 0 0
0 1 1
1 0 1
1 1 0
    否定的論理和(NOR)
 ___
 A+B
真理値表
A B NOR
0 0 1
0 1 0
1 0 0
1 1 0

 

否定的論理積(NAND)
 __
 A・B
真理値表
A B NAND
0 0 1
0 1 1
1 0 1
1 1 0


○半加算回路
 論理積(AND)回路と排他的論理和(EOR)の二つ回路からなる
 上位のけた上がりを考慮

○全加算回路
 二つの半加算回路とOR回路からなる
 下位のけた上がり、上位のけた上がりを考慮 

○ド・モルガンの法則
  __  _ _
  A・B =A+B
  __  _ _
  A+B=A・B

○分配則1
 A・(B+C)=A・B+A・C

○分配則2
 A+B・C=(A+B)・(A+C)


二種午前平成11年秋問7(2000/1/24)
              _ _
 次の論理式のうち、X・Y+X・Yと恒等的に等しいものはどれか。ここで、
                   _
・は論理積を、+は論理和を、XはXの否定を表す。
          _ 
 ア (X+Y)・(X+Y)
            _
 イ (X+Y)・(X+Y)
          _ _
 ウ (X+Y)・(X+Y)
      _  _
 エ (X+Y)・(X+Y)

 


(解答例)

分配則2をつかう
  _ _     _ _    _  
X・Y+X・Y=(X・Y+X)・(X・Y+Y)
            _ _ _        _
       =((X+X)(Y+X))・((X+Y)・(Y+Y)) 
         _ _               _ _ 
       =(Y+X)・(X+Y) =(X+Y)・(X+Y)   
    _
※(X+X)は真となり 1と同じ


二種午前平成11年秋問8
 0または1の値をとる変数xとyがある。変数xとyの値がどのような組合せ
でも、条件“x<=y”と同値になるものはどれか。ここで、AND は論理積を、
           _
ORは論理和を、AはAの否定を表す。

 ア (xAND y)=0
    _
 イ (xAND y)=0

 ウ (x OR y)=1
    _
 エ (x OR y)=1



解答
ア            イ


xANDy
0 0 0
0 1 0
1 0 0
   

_
xANDy

0 0 0
1 1 0
1 0 0

ウ           エ


xORy
0 1 1
1 1 1
1 0 1
   

_
xORy

0 0 1
1 1 1
0 1 0

ア,イ,ウは水色のところで
x≦yを満たさない


★★★解説:二種向け★(2000/2/2)


 次の回路において,各入力の値がA=1,B=0,C=1のとき,各出力P,
Q,Rの値の適切な組合せはどれか。
    _┌─┐             _┌─\               ┌\
ここで, |  ├ はAND ゲート, |    )- は,ORゲート,┤   >○-は,
     ̄└─┘              ̄└─/               └/
NOT ゲートを表す。


A_┌──┐ P
  |AND ├───┌─\ Q   ┌ \   R
B ̄└──┘      |OR )-──NOT > ○- ───
           ┌──└─/      └/
C─────┘


 


 


> ■解答■
>   二種午前平成11年秋問9
>
> │ア│ 0 │ 1 │ 0 │
>
> > 順番に計算していくと
> > 1 AND 0 = 0  P
> > 0 OR  1 = 1  Q
> > NOT(1)  = 0  R になるので ア が答え
>
>  どうもありがとうございました。
>
 戻る


★★★宿題:二種向け★(2000/5/17)

 論理式 not(A)・not(B)・not(C)+not(A)・B・not(C)+A・not(B)・not(C)+
A・B・not(C) と恒等的に等しい論理式はどれか。ここで,・は論理積を,+は
論理和を,not(X) は X の否定を表す。

 ア A

 イ B

 ウ not(B)

 エ not(C)

(注:本当の問題と否定の表現を変更してます。)


(解答例)
分配則を用いて計算
not(A)・not(B)・not(C)+not(A)・B・not(C)+A・not(B)・not(C)+
A・B・not(C)は
=(not(A)・not(B)+not(A)・B+A・not(B)+A・B)・not(C)
=(not(A)・(not(B)+B)+A・(not(B)+B))・not(C)
=(not(A)・1+A・1)・not(C)
=(not(A)+A)・not(C)
=(1)・not(C)
=not(C)
ということになります。

戻る


★★★解説:二種向け★(2000/4/28)

 論理演算“x ★ y” の演算結果は,次に示す真理値表のとおりである。この
演算と等価な式はどれか。

x y x ★ y

 ア x OR (NOT y)

 イ (NOT x) AND y

 ウ (NOT x) AND (NOT y)

 エ (NOT x)OR (NOT y)


 

■解答■(宿題メールより)
  二種午前平成12年春問10

 イ (NOT x) AND y

> x    y    NOTx  NOTy  ア イ ウ エ x ★ y 
>真 真  偽   偽   真 偽 偽 偽  偽
>真 偽  偽   真   真 偽 偽 真  偽
>偽 真  真   偽   偽 真 偽 真  真
>偽 偽  真   真   真 偽 真 真  偽

 どうもありがとうございました。

>まず、選択肢を0と1に置き換えてみる。
>     x     y
>      ---------------
>   ア:1 or  0 = 1
>   イ:0 and 1 = 0
>   ウ:0 and 0 = 0
>   エ:0 or  0 = 0
>次に、真理表のxとyの真偽を適用して一つずつ照合する。
>例えば、真理表の一番上の条件とアの場合
>   x=真,y=真のとき、結果が偽となるか?
>   アの場合:1 or  0 = 1 ←結果が偽(0)とならないので×
>これを順に当てはめていくと、全てに合致するのはイ。
>
>この問題は、試験に出たとき解けませんでした。
>しかし職場のSEさんに「こんなの簡単じゃん」と言われ、
>教えてもらいました。
>できるようになってみると、簡単・・・というより淡々と
>解けるようになりました。でも何だか、自分に情けない
>気持ちがしてきてしまいました。

 解けるようになったので,素直に,単純に喜びましょう。

>論理演算は、論理的な問題を考えるときに用いられる方法の1つで、
>加減乗除の四則演算以外の演算をいう。演算には、論理和(OR)や
>論理積(AND)、否定(NOT)、排他的論理和(EOR)などがある。
>(技術評論社「第2種 コンピュータ基礎の総合研究(平成11年度)」
> p.63-67より)

 どうもありがとうございました。

戻る


★★★宿題:二種向け★(2000/6/9)

 図は全加算器を表す論理回路である。図中の x に 1,y に 0,z に 1 を入力
したとき,出力となる c(けた上げ数),s(和)の値はどれか。

   ┌――――┐
x ―┤        ├― c
y ―┤全加算器│
z ―┤        ├― s
   └――――┘

 

   c   s 
0 0
0 1
1 0
1 1


(解答例)

全加算回路は半加算回路二つとOR回路からなる。

上の全加算回路をたどりながら計算すると

桁上がりA 和A
1 0 0 1
和A 桁上がりB
1 1 1 0
桁上がりA 桁上がりB 桁上がり
0 1 1

よって、cは1、sは0 となる。

■解答■(宿題メールより)
  二種午前平成12年春問31

> 3つの2進数の演算を行う回路は2つの半加算回路と
> OR回路を組み合わせることにより実現できる。これを
> 全加算回路(Full Adder; FA)という。
> (コンピュータ・エージ社
>  「第2種共通テキスト1ハードウェア」p.75より)

 どうもありがとうございました。

> 全加算器・・・下位のと上位のけた上がりを考慮し、2進数データの和を出力する
> 加算回路。2ビット以上のデータの和を出力するには、下位のけた上がりを考慮し
> なければならない。全加算器は、半加算回路とOR回路の組み合わせで実現できる
> 。(第二種・シスアド試験対応情報処理用語辞典210Pより抜粋)

 どうもありがとうございました。

>全加算器:nけたの2進数の加算を行う場合、最下位のけたの加算には、
>          半加算器を使用することができるが、上位の各けたの加算では
>          下位からのけた上げ入力を考慮した加算回路が必要となる。
>          全加算器は2つの半加算器を組み合わせたものである。
>          半加算器は、2進数の1けたの加算を行う回路である。
>

戻る



★★★宿題:二種(基本情報技術者)向け★(2000/8/28)

 P,Q,R はいずれも命題である。命題 P の真理値は真であり,命題 ( not P )
or Q 及び命題 ( not Q ) or R のいずれの真理値も真であることが分かっている。
Q,R の真理値はどれか。ここで,X or Y は X と Y の論理和,not X は X の否
定を表す。

  ┌──────┬──────┐
  │   Q   │   R   │
┌─┼──────┼──────┤
│ア│  偽   │  偽   │
├─┼──────┼──────┤
│イ│  偽   │  真   │
├─┼──────┼──────┤
│ウ│  真   │  偽   │
├─┼──────┼──────┤
│エ│  真   │  真   │
└─┴──────┴──────┘



(解答例)
要素は
Pは真
notPは偽
(notP)orQは真
(notQ)orRは真

(notP)orQは真より
偽 or Q が真になるにQが真の時しかない
よってQの真理値は真

次ぎに(notQ)orRは真より
偽 or R が真になるにはRが真の時しかない
よってRの真理値も真となる。

論理和(or)の組合せはいちばん上の説明を見てください。

■解答■(宿題メールより)
  一種午前平成12年問8

> P は真なので、 ( not P ) は偽となる。
> ( not P ) or Q が真なので Q は真、( not Q ) は偽。
> ( not Q ) or R も真なので R も真。
>
> こんなに単純でよかったでしょうか?

 単純に考えられるということは,理解している証拠ですね。

>ド・モルガンの法則について〜
>http://www.osaka-ue.ac.jp/zemi/OHTA/0semi/199601/semi101.htm

 どうもありがとうございました。


★★★宿題:二種(基本情報技術者)向け★(2000/9/5)

 次に示す手順は,あるビット列が与えられたとき,最も右にある 1 を残し,
他のビットをすべて 0 にするアルゴリズムである。例えば,00101000 が与えら
れたとき,00001000 が求められる。手順 3 の【   】に入る論理演算はどれ
か。

 手順1 与えられたビット列 A を符号なしの 2 進数とみなし,A から 1 を
    引き,結果を B とする。
 手順2 A と B の排他的論理和 (XOR)を求め,結果を C とする。
 手順3 A と C の【   】を求め,結果を A とする。


 ア 排他的論理和 (XOR)

 イ 否定論理積 (NAND)

 ウ 論理積 (AND)

 エ 論理和 (OR)


(解答例)

これは手順通りにやってみるしかないですね。

手順1
   00101000
  -      1
  ̄ ̄ ̄ ̄ ̄ ̄ ̄
   00100111 ← B

手順2
    00101000
XOR 00100111
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
   00001111 ← C

手順3
   00101000
AND 00001111
 ̄ ̄ ̄ ̄ ̄ ̄
   00001000

論理和(AND)しかないですね。

■解答■(宿題メールより)
  ネットワークスペシャリスト午前平成11年問39

> 実際に、ビット列 A を 00101000 として、00001000 が求められるか、
> 計算してみました。
>
> 手順1 与えられたビット列 A を符号なしの 2 進数とみなし,A から 1 を
>     引き,結果を B とする。
>
>        00101000
>       -)          1
>       ̄ ̄ ̄ ̄ ̄ ̄ ̄
>      B = 00100111 となる。  
>
> 手順2 A と B の排他的論理和 (XOR)を求め,結果を C とする。
>
>        00101000 = A
>    (XOR) 00100111 = B
>     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>      C = 00001111 となる。
>        
> 手順3 A と C の【   】を求め,結果を A とする。
>
>  ア 排他的論理和 (XOR) の場合
>
>        00101000 = A
>    (XOR) 00001111 = C
>     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>      A = 00100111 となるので誤り。
>
>  イ 否定論理積 (NAND) の場合
>
>        00101000 = A
>   ( NAND) 00001111 = C
>     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>      A = 11110111 となるので誤り。
>
>  ウ 論理積 (AND) の場合
>
>        00101000 = A
>    (AND) 00001111 = C
>     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>      A = 00001000 となるので正解。
>
>  エ 論理和 (OR) の場合
>
>        00101000 = A
>     (OR) 00001111 = C
>     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
>      A = 00101111 となるので誤り。
>
> なのでウ。

 どうもありがとうございました。