¿Cómo compara una computadora los valores?

Una computadora no “sabe” que está comparando valores. Simplemente alimenta los dos valores en una ecuación lógica que un humano descubrió, cuyo resultado coincide con lo que un humano decidiría al comparar los valores.

Hagámoslo para valores de 2 bits sin signo. Todo lo que queremos saber es si A> B; G es VERDADERO si y solo si A> B.

A1A0 B1B0 | sol
—- —- + —–
0 0 0 0 | FALSO
0 0 0 1 | FALSO
0 0 1 0 | FALSO
0 0 1 1 | FALSO
0 1 0 0 | CIERTO
0 1 0 1 | FALSO
0 1 1 0 | FALSO
0 1 1 1 | FALSO
1 0 0 0 | CIERTO
1 0 0 1 | CIERTO
1 0 1 0 | FALSO
1 0 1 1 | FALSO
1 1 0 0 | CIERTO
1 1 0 1 | CIERTO
1 1 1 0 | CIERTO
1 1 1 1 | FALSO

Entonces, nuestra ecuación es:

G = (A1 * y A0 y B1 * y B0 *) | (A1 y A0 * y B1 * y B0 *) | (A1 y A0 * y B1 * y B0) | (A1 y A0 y B1 * y B0 *) | (A1 y A0 y B1 * y B0) | (A1 y A0 y B1 y B0 *)

En su primer año de ingeniería eléctrica para la lógica digital, aprenderá cómo simplificar esa ecuación. Sin embargo, en ningún momento la computadora sabe lo que está haciendo; solo está evaluando una ecuación lógica.

Al contrario de las otras respuestas (que son incorrectas), una computadora compara los valores de manera muy simple:

Sustracción.

Toma el primer valor y resta el segundo valor. No importa si los valores son caracteres, enteros o flotantes, dobles …

Entonces es fácil probar el bit de signo o si todos los bits son 0.

Los indicadores se generan cada vez que se realiza una operación aritmética (los indicadores son parte de la operación, por lo que no hay un esfuerzo adicional para generarlos), y los resultados se muestran en un registro de estado como una serie de bits (nzcv) – n => set es negativo, el mismo valor que el bit de signo. z => establecido solo si todos los bits son cero, c => carry (para aritmética extendida, si la secuencia se realiza, puede indicar un desbordamiento), v => desbordamiento.

Incluso puede haber algunos más para el uso de punto flotante (flotante sobre / subflujo, cero, no un número …)

Después de la aritmética, las instrucciones de ramificación se basan en los valores de las banderas. Una rama si es menor que 0 es una instrucción de salto si se establece la bandera “z”. Una bifurcación si es menor o igual a 0 es si se establece el indicador “z” O si se establece el indicador “n”.

Las razones para usar las banderas son que es mucho más rápido probar (electrónica más simple). Ya no se trata de expresiones booleanas.

Poco a poco.

Me encanta dar esa respuesta, porque es divertida y correcta.

Las computadoras almacenan información en BIT. Este no es el bit que se usa en la frase
“Un poco”, pero en cambio es una forma abreviada de Binary digIT.

Una computadora puede combinar múltiples BIT en BYTE, pero eso no importa para este propósito. Un BIT es la unidad más pequeña de memoria de la computadora.

Entonces, cuando respondo: BIT por BIT, quiero decir que compara cada BIT de uno con el BIT correspondiente del otro. Tan pronto como encuentra una no coincidencia, los dos no son iguales; solo si cada BIT de uno coincide con el BIT correspondiente del otro son los dos iguales.