前回は基本回路をやりました(論理積回路、論理和回路、否定回路)
上記の3つを組み合わせて更に様々な論理回路を作り出すことができます。
おさらいで上記の3つのベン図を見てみます。
論理積回路(AND回路)
論理和回路(OR回路)
論理否定回路(NOT回路)
上記だけだと網羅しているとは言えません。
他にも論理回路があります。
代表的なものが否定論理積回路(NAND回路) と 否定論理和回路(NOR回路) と 排他的論理和回路(EOR回路またはXOR回路) の3つです。
否定論理積回路(NAND回路)
論理積(AND)と否定(NOT)を組み合わせた論理回路みたいです。納戸ではないんですね。N(NOT)ANDですね。
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
const a = 1
const b = 1
!(a && b) ? 1 : 0
// 答えは0(false)
!a || !b ? 1 : 0
// ド・モルガンで書き換えると
// 答えは上と一緒
否定論理和回路(NOR回路)
論理和(OR)と否定(NOT)でN(NOT)ORですね。
否定するときは先にNですね。
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
const a = 0
const b = 0
!(a || b) ? 1 : 0
// 答えは1(true)
!a && !b ? 1 : 0
// ド・モルガンで書き換えると
// 答えは上と一緒
排他的論理和回路(XOR回路)
Exclusive ORの略で2つある入力のうち片方だけが1の場合に1となるらしいです。
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
const a = 0
const b = 0
a ^ b ? 1 : 0
// 0(false)
// ^のことをキャレットと読むらしいです へえ
排他的論理和は業務で使ったことない気がしますね。
まとめ
論理演算、ベン図、論理回路は無意識に使っているものが多いのと、実務においても重要な章なのでしっかり覚えていきます。