Un comparador digital o comparador de magnitud es un dispositivo electrónico de hardware que toma dos números como entrada en forma binaria y determina si un número es mayor, menor o igual que el otro. Los comparadores se utilizan en unidades centrales de procesamiento (CPU) y microcontroladores (MCU). Algunos ejemplos de comparadores digitales incluyen el CMOS 4063 y 4585 y el TTL 7485 y 74682.
Una puerta XNOR es un comparador básico, porque su salida es "1" sólo si sus dos bits de entrada son iguales.
El equivalente analógico del comparador digital es el comparador de tensión . Muchos microcontroladores tienen comparadores analógicos en algunas de sus entradas que pueden leerse o activar una interrupción .
Consideremos dos números binarios de 4 bits A y B, de modo que
Aquí cada subíndice representa uno de los dígitos de los números.
Los números binarios A y B serán iguales si todos los pares de dígitos significativos de ambos números son iguales, es decir,
, , y
Dado que los números son binarios, los dígitos son 0 o 1 y la función booleana para la igualdad de dos dígitos se puede expresar como
También podemos reemplazarlo por la puerta XNOR en electrónica digital .
es 1 solo si y son iguales.
Para la igualdad de A y B, todas las variables (para i=0,1,2,3) deben ser 1.
Por lo tanto, la condición de igualdad de A y B se puede implementar utilizando la operación AND como
La variable binaria (A=B) es 1 sólo si todos los pares de dígitos de los dos números son iguales.
Para determinar manualmente el mayor de dos números binarios, inspeccionamos las magnitudes relativas de pares de dígitos significativos, comenzando por el bit más significativo y avanzando gradualmente hacia los bits menos significativos hasta que se encuentra una desigualdad. Cuando se encuentra una desigualdad, si el bit correspondiente de A es 1 y el de B es 0, entonces concluimos que A>B.
Esta comparación secuencial se puede expresar lógicamente como:
(A>B) y (A < B) son variables binarias de salida , que son iguales a 1 cuando A>B o A<B respectivamente.