La adición de números binarios es un proceso ligeramente extraño, y al principio puede parecer un poco desconcertante. Pero en verdad, es muy similar a la adición de números decimales que se nos enseña como parte de las matemáticas elementales, ¡con la obvia excepción de que estamos trabajando con dos dígitos en lugar de diez!
Para empezar a pensar en la adición en términos binarios, veamos la adición binaria de dos valores de 1 bit, la forma más simple de adición que podemos imaginar:
La tabla anterior representa las reglas lógicas fundamentales de la suma binaria. Los números de la izquierda de la tabla representan los valores binarios que estamos tratando de sumar, y los números de la derecha representan el resultado de esta suma. ¡Esto podría tener sentido aparte de la extraña columna de carga que ha aparecido de repente!
La columna carry denota resultados donde hemos excedido la cantidad que podemos representar con solo un bit. Tener un bit extra para representar esto actúa como un mecanismo para mover (o transportar) valores superiores a la siguiente columna de unidades (en binario, estas columnas de unidades son 1, 2, 4, 8)… etc) al calcular la suma. Intuitivamente, puedes pensar en esto de la misma manera que podemos ‘llevar’ valores decimales a su siguiente columna de unidades (1, 10, 1000… etc) al calcular la suma de decimales a mano.
Pero, ¿qué hay de implementar esto como hardware? Bueno, como el método de adición utiliza lógica básica, se puede construir como un circuito digital representado por el diagrama de bloques a continuación.
Este circuito toma dos valores binarios de 1 bit como entradas (A & B), emite un resultado (R) y un valor de transporte (como el transporte es una salida del resultado, lo llamaremos ‘llevar a cabo’, o Cout para abreviar). Este comportamiento es lo que define a una ‘media sumadora’, un mecanismo que nos permite realizar la adición binaria de 1 bit.