AND lógico (&&)
AND lógico é um operador binário que gera 1 quando ambos os lados do símbolo são 1 e gera 0 quando ambos os lados do símbolo são 0.
Tabela verdade:
&& |
0 |
1 |
x |
z |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
x |
x |
x |
0 |
x |
x |
x |
z |
0 |
x |
x |
x |
Dois números de 4 bits AND; A=4'b0x1z; B=4'b01xx; C=4'b00xz; Encontrar A&&B; A&&C; qual é o valor? Quando os números em ambos os lados do operador lógico AND && contiverem "1", 1 será gerado.
Então, como julgar se A, B e C contêm "1". Quando A é 0, A é igual a 4'b0, ou seja, todo bit é 0, ou seja, basta fazer uma operação "OU lógico" entre os vetores de 4 bits de A, A[3] || A[2] || A[1] || A[0] também pode ser escrito como (|A); quando apenas um bit no vetor de 4 bits é 1, então A contém "1". Ou seja, mesmo se houver um estado indeterminado x ou um estado de alta impedância z em A, A = 4'b0x1z será julgado como "1" sob o julgamento lógico AND.
故 A && B = 4'b0x1z && 4'b01xx =
C = 4'b00xz, onde nenhum bit é 1, então aos olhos da lógica e, C é "0", e então:
A && C = 4'b0x1z && 4'b00xz =
E (&) bit a bit
Existem duas formas de usar o AND bit a bit, uma é a operação binocular, ou seja, um operador corresponde a dois operandos A&B; a outra é a operação unária, ou seja, um operador corresponde a um operando &A.
operação binocular
O resultado do AND bit a bit de um número de 4 bits e um número de 4 bits ainda é um número de 4 bits, por exemplo, A[3:0] & B[3:0] = { A[3] && B[3] , A[ 2] && B[2], A[1] && B[1], A[0] && B[0] }
Suponha que A = 4'b10xz; B = 4'b0011; C = 4'bz011;
A & B = 4'b00xx;A & C =4'bx0xx;
operação monocular
Um número de 4 bits executa um AND bit a bit com ele mesmo, e o resultado de saída é um número de 1 bit.
Suponha que A = 4'b10xz; B = 4'b0011;
& A = A[3] && A[2] && A[1] && A[0] = 0
& B = 0
Como há 0s no meio dos números de 4 bits A e B, os resultados AND bit a bit de A e B são ambos 0.
Se C = 4'b11xz; então & C = x
OU Lógico (||)
Operador lógico ou binocular que gera 1 quando um símbolo tem 1s em ambos os lados e gera 0 quando ambos os lados do símbolo são 0s.
|| |
0 |
1 |
x |
z |
0 |
0 |
1 |
x |
x |
1 |
1 |
1 |
1 |
1 |
x |
x |
1 |
x |
x |
z |
x |
1 |
x |
x |
Dois números de 4 bits AND; A=4'b0x1z; B=4'b01xx; C=4'b00xz; Encontrar A&&B; A&&C; qual é o valor? Quando os números em ambos os lados do operador lógico AND && contiverem "1", 1 será gerado.
Quando apenas um bit no vetor de 4 bits precisa ser 1, então A contém "1". Ou seja, mesmo se houver um estado indeterminado x ou um estado de alta impedância z em A, A = 4'b0x1z será julgado como "1" sob o julgamento lógico AND.
Então A||B = 1; A||C = 1
bit a bit ou (|)
Assim como o bit a bit e, existem duas formas de usar o bit a bit ou, uma é a operação binocular, ou seja, um operador corresponde a dois operandos A|B; a outra é a operação unária, ou seja, um operador corresponde a uma operação Number|A.
operação binocular
O resultado OR bit a bit de um número de 4 bits e um número de 4 bits ainda é um número de 4 bits, por exemplo, A[3:0] & B[3:0] = { A[3] || B[3] , A[2 ] || B[2], A[1] || B[1], A[0] || B[0] }
Suponha que A = 4'b10xz; B = 4'b0011; C = 4'bz011;
A | B = 4'b10xz | 4'b0011 = 4'b1011;
A | C = 4'b10xz | 4'bz011 = 4'b1011;
operação monocular
Um número de 4 bits executa OR bit a bit em si mesmo e o resultado de saída é um número de 1 bit.
Suponha que A = 4'b10xz; B = 4'b0011;
| A = A[3] || A[2] || A[1] || A[0] = 1
| B = 1
Como há 1 no meio dos números de 4 bits A e B, os resultados OR bit a bit de A e B são ambos 1.
Se C = 4'b00xz; então | C = x
Operador de igualdade (==)
Os dois operandos participantes da comparação devem ser iguais bit a bit, e o resultado da comparação de igualdade é 1. Se alguns bits forem indeterminados ou de alta impedância, o resultado da comparação de igualdade é um valor indeterminado.
Para a comparação de operadores de igualdade, desde que x ou estado de alta impedância z apareça em ambas as extremidades da equação , o resultado deve ser x , por exemplo:
(4'b1010 == 4'b101x)= x
(4'b101z == 4'b1010)= x
(4'b10x1 == 4'b10x1)= x
(4'b1011 == 4'b1011)= 1
(4'b1010 == 4'b1011)= 0
Operador de congruência (===)
A comparação congruente é comparar esses bits indeterminados ou de alta resistência. Os dois operandos devem ser exatamente iguais e o resultado é 1, caso contrário, o resultado é 0.
(4'b1010 === 4'b101x)= 0
(4'b101z === 4'b1010)= 0
(4'b101z === 4'b101z)= 1
(4'b101x === 4'b101x)= 1
Tabelas verdade para operadores de igualdade e identidade
== |
0 |
1 |
x |
z |
=== |
0 |
1 |
x |
z |
0 |
1 |
0 |
x |
x |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
x |
x |
1 |
0 |
1 |
0 |
0 |
x |
x |
x |
x |
x |
x |
0 |
0 |
1 |
0 |
z |
x |
x |
x |
x |
z |
0 |
0 |
0 |
1 |