Altifigence Academy

5 / 63 · Conceito

XOR e XNOR: igualdade, diferença e paridade

Distinga a XOR de duas entradas da paridade de várias entradas e explique os limites da detecção de erros.

Uma porta que pergunta se dois bits diferem

XOR vale 1 quando as entradas são diferentes; XNOR vale 1 quando são iguais.

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 coincidem para 00, 01 e 10, mas diferem para 11. XOR acrescenta uma curva à frente do símbolo OR. XNOR também acrescenta um círculo de inversãoNegação Operação NOT que troca 0 por 1 e 1 por 0. Uma barra sobre uma expressão aplica NOT a toda a expressão coberta. Saiba mais na saída.

Compare OR e XOR com 11
XOR · Tabela-verdade
aby
000
011
101
110

Com três entradas ou mais, não significa «exatamente uma»

XOR é associativa: a⊕b⊕ca\oplus b\oplus c pode ser calculado em etapas. Produz 1 quando há uma quantidade ímpar de bits em 1. Também vale 1 para 111; estender a descrição «exatamente uma entrada vale 1» seria incorreto.

A saída sum de um somador completo é essa paridadeParidade Valor que indica se a quantidade de bits em 1 é par ou ímpar. A verificação de paridade detecta uma quantidade ímpar de erros de bit, mas pode deixar passar uma quantidade par. de três entradas; cout indica se há pelo menos dois bits em 1. Monte 111: sum=1 e cout=1, e a soma inteira é 1+2×1=31+2\times1=3.

Três entradas: paridade ímpar e maioria são funções diferentes

a + b + cin = sum + 2 × cout

A paridade detecta determinados tipos de erro

Para os dados d3d2d1d0=1011d_3d_2d_1d_0=1011, o bit de paridade par é p=d3⊕d2⊕d1⊕d0=1p=d_3\oplus d_2\oplus d_1\oplus d_0=1. A XOR dos dados e de p vale 0. Se uma quantidade ímpar de bits for invertida na transmissão, a XOR total passa a 1 e o erro é detectado. Uma quantidade par de inversões pode passar despercebida; um único bit de paridade também não permite localizar o erro.

Compare sequências completas de bits

Para verificar se os vetores A e B são iguais, combine por OR as XOR de cada par de bits:

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

Se pelo menos um bit diferir, a OR vale 1. Negando o resultado inteiro, obtém-se 1 somente quando todos coincidem. Uma redução XOR de todas as diferenças pode cancelar duas discrepâncias e produzir uma igualdade falsa.

Experimente

Para A=1010 e B=1001, calcule o vetor XOR e a igualdade. O que falha se o vetor XOR for reduzido por outra XOR para determinar «igualdade»?

Ler a explicação

O vetor XOR é 0011 e a igualdade vale 0. Reduzir por XOR cancela as duas diferenças e produz 0; invertê-lo dá uma igualdade incorreta de 1. As diferenças devem ser reduzidas por OR.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.