Nand
se conoce como puerta lógica 'universal', porque le permite definir todas las demás puertas lógicas booleanas:
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)))
Esto se conoce como lógica nand , y se usa comúnmente en las computadoras modernas porque se puede hacer que un transistor se comporte como una compuerta nand.
Me pregunto si es posible hacer algo similar con las operaciones bit a bit. Puede un ejemplo a nivel de bit NAND (bnand) utilizarse para definir bnot
, bor
, band
, bnor
, bxor
? ¿Existe una operación universal a nivel de bits?