como-restar-en-binario

Cómo restar números en binario

La sustracción binaria es otra operación fundamental que se utiliza para restar un número binario de otro.

Al igual que en la resta decimal se restan los bits correspondientes de los números de derecha a izquierda, teniendo en cuenta los préstamos.

La resta binaria puede resultar en un resultado negativo si el número a restar es mayor que el número del cual se está restando.

Préstamo (Borrow)

El “préstamo” (borrow) ocurre cuando no se puede restar un número de otro debido a su valor. Esto sucede cuando el número que se resta es mayor que el número del cual se está restando.

En binario, esto sólo pasa cuando intentamos restar a 0 un 1 .En este caso, el resultado es ‘1’, y se “toma prestado” un valor del siguiente bit más significativo.

Ejemplo

Por ejemplo, para restar el número binario 1101 (13 en decimal) a 1011 (11 en decimal):

  1011
- 1101
______
  1110

El resultado es 1110, que es igual a -2 en decimal.

Resta binaria con complemento a dos

La resta binaria no es difícil, pero puede ser un poco peñazo. Generalmente es más rápido utilizando el método del complemento a dos. Este método permite convertir la resta en una suma, y sabemos sumar dos números binarios “a mano” muy rápido.

Para restar números binarios utilizando el complemento a dos, seguimos estos pasos:

  • Convertir el número a restar en su complemento a dos
  • Sumar el número del cual se está restando con el complemento a dos
  • Descartar cualquier bit de desbordamiento al final

También podríamos hacer un procedimiento manual para restar a mano muy rápido, como hicimos con la suma. Pero en general más vale sabernos dos o tres “trucos” para hacer las cosas rápido, que intentar aprendernos 27 y luego mezclarlos u olvidarlos todos.

Ejemplo

Vamos a restar a el número binario 1101 (13 en decimal), el número binario 0100 (11 en decimal) ausando el complemento a dos:

  1101
- 0100
_____
¿?¿?

Primero convertimos 1011 en su complemento a dos. Para ello, invertimos todos los bits y luego sumamos 1:

1011 (Número original) => Complemento a dos

0100 (Bits invertidos)
+  1 (Suma de 1)
_____
0101 (Complemento a dos de 1011)
  1. Sumamos 1101 con el complemento a dos de 1011:

        1101 (Número original)
      + 0101 (Complemento a dos de 1011)
      ______
      1 0010 (Resultado)

Al descartar el bit de desbordamiento a la izquierda, obtenemos el resultado final: 0010, que es igual a 2 en decimal.

Las ventajas de usar el complemento a dos para las restas es que nos simplifica el proceso, y nos elimina elimina la necesidad de manejar los préstamos.

Bonus: Cómo restar 1 rápidamente en binario

Bonus especial, cómo restar rápidamente 1 a un número binario. Una operación muy sencilla, pero que como es muy habitual conviene saber hacerla.

Afortunadamente, restar 1 en binario “está tirado”. Simplemente

  • Recorrer el número binario desde la derecha
  • Buscas el primer 1 que encuentres, y lo cambias por 0
  • Desde esa posición, hacía la derecha, todo 1s.

Por ejemplo, si tuviéramos que restar 1 1000100000

curso-binario-restar-uno-1

Buscamos el primer 1

curso-binario-restar-uno-2

Lo cambiamos por 0 y, de ahí para la derecha, todo 1.

curso-binario-restar-uno-3

Así que el resultado es 1000011111. Como veis sumar uno es rapidísimo.