E 'possibile definire tutti gli operatori bit a bit usando un' bitwise nand 'simile a come tutta la logica booleana può essere costruita usando solo' boolean nand '?

9

Nand è noto come porta logica "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 a bit. Può ad es. bit nand (bnand) essere utilizzato per definire bnot , bor , band , bnor , bxor ? Esiste un'operazione universale bit a bit?

    
posta Qqwy 31.08.2016 - 22:31
fonte

2 risposte

13

A livello di hardware non c'è differenza tra bit a bit e logico. Quindi sì. Un'operazione logica è solo un'operazione bit a bit su un singolo bit.

    
risposta data 31.08.2016 - 22:59
fonte
2

Sulla maggior parte dei moderni microprocessori le operazioni bit a bit sono implementate in modo nativo, quindi non c'è alcun vantaggio di avere un'operazione NAND.

Ad esempio il set di istruzioni x86 ha: AND , OR , XOR , NOT . Questi sono tutti eseguiti in un unico ciclo, per quanto ne so, in modo che non ci sarebbe alcun vantaggio sostituendoli con diverse operazioni NAND. Ha anche ANDN che è un equivalente per ((NOT x) AND y) che potrebbe essere generato da un intelligente compilatore di ottimizzazione per ottenere un ciclo.

Il movimento RISC ha cercato di promuovere un set di istruzioni ridotto per un'architettura più semplice e più performante. L'idea era che i compilatori avrebbero dovuto combinare istruzioni più semplici e più veloci. Sembra tuttavia che a parte alcuni processori sperimentali o di insegnamento, la maggior parte fornisce NAND nativamente come così come le solite operazioni bit a bit (ad es. PowerPC o ARM ).

    
risposta data 01.09.2016 - 00:01
fonte

Leggi altre domande sui tag