AND lógico (&&)
AND lógico es un operador binario que genera 1 cuando ambos lados del símbolo son 1 y genera 0 cuando ambos lados del símbolo son 0.
Mesa de la verdad:
&& |
0 |
1 |
X |
z |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
X |
X |
X |
0 |
X |
X |
X |
z |
0 |
X |
X |
X |
Dos números de 4 bits Y; A=4'b0x1z; B=4'b01xx; C=4'b00xz; Encuentra A&&B; A&&C; ¿cuál es el valor? Cuando los números a ambos lados del operador lógico AND && contienen "1", se emite 1.
Entonces, ¿cómo juzgar si A, B y C contienen "1"? Cuando A es 0, A es igual a 4'b0, es decir, cada bit es 0, es decir, solo necesita hacer una operación de "OR lógico" entre los vectores de 4 bits de A, A[3] || A[2] || A[1] || A[0] también se puede escribir como (|A); cuando solo un bit en el vector de 4 bits es 1, entonces A contiene "1". Es decir, incluso si hay un estado indeterminado x o un estado z de alta impedancia en A, A = 4'b0x1z se juzgará como "1" según el juicio lógico AND.
故 A && B = 4'b0x1z && 4'b01xx =
C = 4'b00xz, donde ningún bit es 1, entonces a los ojos de la lógica y, C es "0", y luego:
A && C = 4'b0x1z && 4'b00xz =
Bit a bit Y (&)
Hay dos formas de usar AND bit a bit, una es la operación binocular, es decir, un operador corresponde a dos operandos A y B; la otra es una operación unaria, es decir, un operador corresponde a un operando &A.
operación binocular
El resultado del AND bit a bit de un número de 4 bits y un número de 4 bits sigue siendo un número de 4 bits, por ejemplo, A[3:0] & B[3:0] = { A[3] && B[3] , A[ 2] && B[2], A[1] && B[1], A[0] && B[0] }
Supongamos que A = 4'b10xz, B = 4'b0011, C = 4'bz011;
A y B = 4'b00xx;A y C =4'bx0xx;
operación monocular
Un número de 4 bits realiza un AND bit a bit consigo mismo, y el resultado de salida es un número de 1 bit.
Supongamos que A = 4'b10xz, B = 4'b0011;
&A = A[3] && A[2] && A[1] && A[0] = 0
& segundo = 0
Debido a que hay 0 en medio de los números de 4 bits A y B, los resultados AND bit a bit de A y B son ambos 0.
Si C = 4'b11xz, entonces & C = x
O lógico (||)
Lógico o un operador binocular que genera 1 cuando un símbolo tiene 1 en ambos lados y genera 0 cuando ambos lados del símbolo son 0.
|| |
0 |
1 |
X |
z |
0 |
0 |
1 |
X |
X |
1 |
1 |
1 |
1 |
1 |
X |
X |
1 |
X |
X |
z |
X |
1 |
X |
X |
Dos números de 4 bits Y; A=4'b0x1z; B=4'b01xx; C=4'b00xz; Encuentra A&&B; A&&C; ¿cuál es el valor? Cuando los números a ambos lados del operador lógico AND && contienen "1", se emite 1.
Cuando solo un bit en el vector de 4 bits necesita ser 1, entonces A contiene "1". Es decir, incluso si hay un estado indeterminado x o un estado z de alta impedancia en A, A = 4'b0x1z se juzgará como "1" según el juicio lógico AND.
Entonces A||B = 1; A||C = 1
bit a bit o (|)
Al igual que bit a bit y, hay dos formas de usar bit a bit o, una es la operación binocular, es decir, un operador corresponde a dos operandos A|B; la otra es una operación unaria, es decir, un operador corresponde a una operación Número|A.
operación binocular
El resultado OR bit a bit de un número de 4 bits y un número de 4 bits sigue siendo un número de 4 bits, por ejemplo, A[3:0] & B[3:0] = { A[3] || B[3] , A[2 ] || B[2], A[1] || B[1], A[0] || B[0] }
Supongamos que A = 4'b10xz, B = 4'b0011, C = 4'bz011;
un | B = 4'b10xz | 4'b0011 = 4'b1011;
un | C = 4'b10xz | 4'bz011 = 4'b1011;
operación monocular
Un número de 4 bits realiza OR bit a bit sobre sí mismo, y el resultado de salida es un número de 1 bit.
Supongamos que A = 4'b10xz, B = 4'b0011;
| UNA = UNA[3] || A[2] || UN[1] || A[0] = 1
| B = 1
Debido a que hay 1 en medio de los números de 4 bits A y B, los resultados OR bit a bit de A y B son ambos 1.
Si C = 4'b00xz, entonces | C = x
Operador de igualdad (==)
Los dos operandos que participan en la comparación deben ser iguales bit a bit, y el resultado de la comparación de igualdad es 1. Si algunos bits son indeterminados o de alta impedancia, el resultado de la comparación de igualdad es un valor indeterminado.
Para la comparación de operadores de igualdad, siempre que x o estado de alta impedancia z aparezca en ambos extremos de la ecuación , el resultado debe ser x , por ejemplo:
(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 congruencia (===)
La comparación congruente consiste en comparar estos bits indeterminados o de alta resistencia, los dos operandos deben ser exactamente iguales y el resultado es 1, de lo contrario el resultado es 0.
(4'b1010 === 4'b101x)= 0
(4'b101z === 4'b1010)= 0
(4'b101z === 4'b101z)= 1
(4'b101x === 4'b101x)= 1
Tablas de verdad para operadores de igualdad e identidad
== |
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 |