La suma, la resta, la multiplicación y la división también funcionan en el sistema binario. Su lógica es la misma que en decimal: se alinean las posiciones del mismo peso, se trabaja de derecha a izquierda cuando es necesario y se gestionan acarreos, préstamos y resultados parciales. La diferencia es que la base 2 solo utiliza 0 y 1.

El NIST define el bit como un dígito binario con valor 0 o 1. En una secuencia ordenada, el bit más significativo está a la izquierda y el menos significativo a la derecha. Cada columna pesa el doble que la columna situada inmediatamente a su derecha.

Primera regla: alinear los pesos

La columna 2⁰ debe estar debajo de 2⁰, 2¹ debajo de 2¹, etc. Es el equivalente a alinear unidades, decenas y centenas en decimal.

Los ceros iniciales no cambian un entero sin signo. 1101 y 01101 representan 13. Son útiles para mostrar la alineación o una anchura fija.

Infografía con suma, resta, multiplicación y división en el sistema binario Las cuatro operaciones siguen la lógica decimal, pero cada columna usa solo 0 y 1 y corresponde a una potencia de dos.

Suma binaria: casos fundamentales

  • 0 + 0 = 0;
  • 0 + 1 = 1;
  • 1 + 0 = 1;
  • 1 + 1 = 10₂: escribir 0 y llevar 1;
  • 1 + 1 + 1 = 11₂: escribir 1 y llevar 1.

El valor de 1 + 1 es dos, pero la base 2 no tiene una cifra única 2. Por eso escribe una unidad en la columna siguiente y cero en la actual.

Ejemplo completo: 1011 + 1101

1011 + 1101 ------- 11000
  • 1 + 1 = 10: escribo 0 y llevo 1;
  • 1 + 0 + acarreo = 10;
  • 0 + 1 + acarreo = 10;
  • 1 + 1 + acarreo = 11: escribo 1 y coloco el acarreo final a la izquierda.

El resultado es 11000₂. En decimal: 11 + 13 = 24.

Suma binaria paso a paso de 1011 y 1101 con acarreos Cuando una columna suma 2 o 3 en decimal, la escritura binaria genera una cifra actual y un acarreo hacia la izquierda.

¿Dónde va el acarreo?

Siempre a la siguiente columna de la izquierda, porque esa columna tiene el doble de peso. Dos unidades de 2⁰ se escriben como 0 × 2⁰ + 1 × 2¹.

Si queda un acarreo después de la última columna y la anchura es variable, se convierte en una nueva cifra inicial.

Esquema del recorrido del acarreo en una suma binaria Cada acarreo se coloca sobre la columna siguiente a la izquierda; el último se convierte en una nueva cifra.

Resta binaria: el préstamo vale 10₂

  • 0 - 0 = 0;
  • 1 - 0 = 1;
  • 1 - 1 = 0;
  • 0 - 1 necesita un préstamo de la izquierda.

En base 10, una unidad prestada desde la siguiente columna vale diez unidades actuales. En base 2 vale dos, es decir, 10₂. Por tanto, 10₂ - 1₂ = 1₂.

Ejemplo: 1101 - 0110

1101 - 0110 ------- 0111

El resultado 111₂ vale 7. Comprobación: 13 - 6 = 7.

Si el bit inmediatamente a la izquierda es 0, el préstamo se propaga hasta encontrar un 1, igual que una resta decimal que atraviesa varios ceros.

Restar mediante el complemento a dos

Con anchura fija, el hardware puede reutilizar el sumador:

A - B = A + complemento_a_dos(B)

Se invierten los bits y se suma 1. En cuatro bits, el complemento a dos de 0110 es 1010:

1101 + 1010 ------- 1 0111

Al descartar el acarreo exterior queda 0111, es decir, 7.

Multiplicación binaria: productos parciales y desplazamientos

  • 0 × 0 = 0;
  • 0 × 1 = 0;
  • 1 × 0 = 0;
  • 1 × 1 = 1.

Cada cifra del multiplicador crea un producto parcial. Un 0 produce ceros; un 1 copia el multiplicando. Cada posición hacia la izquierda desplaza el producto parcial.

Ejemplo: 101 × 11

101 × 11 ----- 101 + 1010 ----- 1111

101₂ vale 5, 11₂ vale 3 y 1111₂ vale 15.

Un desplazamiento a la izquierda multiplica un entero sin signo por 2 si existe anchura suficiente. En una palabra fija, los bits que salen por la izquierda pueden perderse.

División binaria: comparar, restar y conservar el resto

Se compara el divisor con la parte actual del dividendo. Si cabe, se escribe 1 en el cociente y se resta; si no, se escribe 0. Después se baja la cifra siguiente.

Ejemplo simple: 1100 ÷ 10

1100₂ vale 12 y 10₂ vale 2. El cociente es 110₂, es decir, 6, con resto 0.

En un entero positivo sin signo, dividir entre 10₂ equivale a desplazar una posición a la derecha. El bit eliminado es el resto al dividir entre 2.

Ejemplo con resto: 10111 ÷ 11

10111₂ ÷ 11₂ = 111₂ con resto 10₂.

En decimal: 23 = 3 × 7 + 2. El resto es menor que el divisor.

Desplazamientos y potencias de 2

  • un desplazamiento a la izquierda multiplica por 2;
  • dos desplazamientos multiplican por 4;
  • un desplazamiento a la derecha divide enteramente un valor no negativo entre 2;
  • k desplazamientos corresponden a 2ᵏ.

Con valores con signo hay que distinguir desplazamiento lógico y aritmético. El comportamiento concreto depende de la arquitectura y del lenguaje.

Anchura fija, acarreo y desbordamiento

En cuatro bits sin signo:

1111 + 0001 ------- 1 0000

El resultado matemático 16 no cabe en el intervalo 0 a 15. Si se guardan cuatro bits, queda 0000 y el acarreo exterior indica que el valor no cabe.

El acarreo sin signo y el desbordamiento con signo no son iguales. En complemento a dos de cuatro bits:

0111 (+7) + 0001 (+1) ------- 1000

1000 representa -8, aunque el resultado matemático sería +8. Hay desbordamiento con signo incluso sin acarreo final.

¿Qué hace la CPU?

La CPU utiliza circuitos lógicos. Los sumadores completos procesan bits y acarreos; los registros conservan operandos y resultados; los circuitos de control eligen la operación.

La referencia oficial de Intel describe instrucciones como ADD, ADC para suma con acarreo, SUB, SBB para resta con préstamo, además de multiplicación y división. Los indicadores carry y overflow permiten cálculos de varias palabras y detectan resultados fuera de rango.

Comprobar con Python

a = 0b1011 b = 0b1101 print(bin(a + b)) # 0b11000 print(bin(a - 0b0110)) # 0b101 print(bin(0b101 * 0b11)) # 0b1111 q, r = divmod(0b10111, 0b11) print(bin(q), bin(r)) # 0b111 0b10

Los enteros de Python tienen precisión arbitraria y no reproducen automáticamente el desbordamiento de un registro fijo. Una máscara como & 0b1111 conserva cuatro bits.

Errores frecuentes

  • No alinear a la derecha: se combinan pesos distintos.
  • Dejar el acarreo en la misma columna: debe pasar a la izquierda.
  • No reducir la columna que presta: el préstamo la modifica.
  • No desplazar los productos parciales: las posiciones tienen pesos diferentes.
  • Confundir cociente y resto: el resto debe ser menor que el divisor.
  • Ignorar la anchura: un resultado correcto puede no caber.
  • Confundir carry y overflow: describen condiciones distintas.

Preguntas frecuentes

¿Por qué 1 + 1 no produce la cifra 2?

El valor es dos, pero la base 2 lo escribe como 10.

¿Cuándo el acarreo final se convierte en otra cifra?

Cuando la anchura es variable. En un registro fijo puede guardarse en un indicador carry.

¿Multiplicar por 10₂ significa multiplicar por diez?

No. 10₂ vale 2 en decimal.

¿Una división binaria puede tener resto?

Sí, cuando el dividendo no es múltiplo exacto del divisor.

¿Por qué se utiliza el complemento a dos?

Porque transforma la resta en suma y permite reutilizar el mismo circuito.

Fuentes oficiales y lecturas recomendadas