「NAND」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
31行目: 31行目:
 
== NANDがあれば何でもできる ==
 
== NANDがあれば何でもできる ==
 
すべての論理回路はNANDの組み合わせで表現できる。
 
すべての論理回路はNANDの組み合わせで表現できる。
  NOT(a ) = NAND(a,a)
+
[[NOT]]
 +
  NOT(a) = NAND(a,a)
 +
[[AND]]
 
  AND(a,b) = NOT(NAND(a,b))
 
  AND(a,b) = NOT(NAND(a,b))
  OR (a,b) = NAND(NOT(a), NOT(b))
+
[[OR]]
 +
  OR(a,b) = NAND(NOT(a), NOT(b))
 +
[[XOR]]
 
  XOR(a,b) = NADN(NAND(a,NAND(a,b)),NAND(b,NAND(a,b)));
 
  XOR(a,b) = NADN(NAND(a,NAND(a,b)),NAND(b,NAND(a,b)));
  
 
この理論をもとに[[ハードウェア]]化されたのが「[[FPGA]]」である。
 
この理論をもとに[[ハードウェア]]化されたのが「[[FPGA]]」である。

2022年6月2日 (木) 05:53時点における版

NAND(語源:Not And)とは、論理回路のひとつである。

入出力

入力a 入力b 出力
0 0 1
0 1 1
1 0 1
1 1 0

C言語での記法

C言語論理演算にNAND演算子は存在しないので以下のようにANDNOTの組み合わせで記述する。

!(a & b)

NANDがあれば何でもできる

すべての論理回路はNANDの組み合わせで表現できる。 NOT

NOT(a) = NAND(a,a)

AND

AND(a,b) = NOT(NAND(a,b))

OR

OR(a,b) = NAND(NOT(a), NOT(b))

XOR

XOR(a,b) = NADN(NAND(a,NAND(a,b)),NAND(b,NAND(a,b)));

この理論をもとにハードウェア化されたのが「FPGA」である。