Nand
è noto come un gate logico 'universale', perché consente di definire tutte le altre porte logiche booleane:
not(x) = nand(x,x)
and(x, y) = not(nand(x, y))
or(x, y) = nand(not(x), not(y))
nor(x, y) = not(or(x, y))
xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b)))
Questo è noto come nand-logic ed è comunemente usato nei computer moderni perché un transistor può essere fatto per comportarsi proprio come un nand-gate.
Mi chiedo se sia possibile fare qualcosa di simile con le operazioni bit per bit. Può un esempio bit a bit NAND (bnand) da utilizzare per definire bnot
, bor
, band
, bnor
, bxor
? Esiste un'operazione universale bit per bit?