Altifigence Academy

5 / 63 · Concetto

XOR e XNOR: uguaglianza, differenza e parità

Distinguere XOR a due ingressi e parità a più ingressi e spiegare i limiti della rilevazione degli errori.

Una porta che confronta due bit

XOR vale 1 quando i due ingressi sono diversi; XNOR vale 1 quando sono uguali.

a⊕b=a‾b+ab‾,a⊕b‾=ab+a‾ b‾a\oplus b=\overline a b+a\overline b,\qquad \overline{a\oplus b}=ab+\overline a\,\overline b

OR e XOR coincidono per 00, 01 e 10, ma differiscono per 11. Il simbolo XOR aggiunge una curva davanti al simbolo OR. XNOR aggiunge anche il cerchietto d'inversioneInversione NOT scambia 0 e 1. Una barra superiore applica NOT all’intera espressione sottostante. Approfondisci all'uscita.

Confrontare OR e XOR per 11
XOR · Tabella di verità
aby
000
011
101
110

Con tre o più ingressi non significa «esattamente uno»

XOR è associativo, quindi a⊕b⊕ca\oplus b\oplus c si può calcolare in successione. Il risultato è 1 quando il numero di ingressi a 1 è dispari. Anche 111 dà 1: estendere la frase «esattamente un ingresso vale 1» sarebbe quindi sbagliato.

L'uscita sum di un sommatore completo è questa paritàParità Indica se il numero di bit a 1 è pari o dispari. Rileva un numero dispari di errori, ma può non rilevarne un numero pari. a tre ingressi, mentre cout indica la presenza di almeno due 1. Impostando 111 qui sotto si ottengono sum=1 e cout=1; la somma intera è 1+2×1=31+2\times1=3.

Tre ingressi: quantità dispari e maggioranza sono diverse

a + b + cin = sum + 2 × cout

La parità rileva solo determinati tipi di errore

Per i dati d3d2d1d0=1011d_3d_2d_1d_0=1011, il bit di parità pari è p=d3⊕d2⊕d1⊕d0=1p=d_3\oplus d_2\oplus d_1\oplus d_0=1. Lo XOR dei dati insieme a p vale 0. Se durante la trasmissione si inverte un numero dispari di bit, lo XOR complessivo diventa 1 e l'errore viene rilevato. Un numero pari di inversioni può invece sfuggire; inoltre un solo bit di parità non individua la posizione dell'errore.

Verificare l'uguaglianza di due sequenze

Per verificare se i vettori A e B coincidono, si possono combinare con OR gli XOR di ciascuna coppia di bit.

equal=⋁i(Ai⊕Bi)‾equal=\overline{\bigvee_i(A_i\oplus B_i)}

Se almeno un bit differisce, OR vale 1. Invertendo tutto il risultato si ottiene 1 solo quando tutti i bit coincidono. Combinare invece gli XOR con un altro XOR per stabilire l'uguaglianza permette a due differenze di annullarsi erroneamente.

Prova tu

Per A=1010 e B=1001, calcolate la sequenza XOR e il risultato di uguaglianza. Quale problema nasce riducendo ancora con XOR la sequenza delle differenze?

Leggi la spiegazione

La sequenza XOR è 0011 e l’uguaglianza vale 0. I due bit diversi si annullano a 0 nello XOR; invertendolo si otterrebbe erroneamente uguaglianza=1. I bit di differenza vanno ridotti con OR.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.