Convertir Rápidamente Decimales a Binarios

Si tienes exámenes de redes o de arquitectura del computador, convertir decimales a binarios de manera rápida es muy importante.

Para el siguiente ejemplo, se usarán números que puedan ser representados en 8 bits, en representación natural, es decir, del 0 (0000 0000) al 255 (1111 1111).

El truco de todo está en la siguiente tabla:

27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
_ _ _ _ _ _ _ _

Ahora lo que tienes que hacer es lo siguiente. Colocas un uno (1) en las casillas, de tal modo que la suma sea exactamente el número que deseas, por ejemplo, si quieres convertir el 129 a binario, colocas un uno (1) en las casillas 128 y en la 1, eso suma el 129; así que el número queda: 1000 0001.

Esto funciona para números que requieran pocas sumas, por ejemplo, 67, el cual, sería colocar un 1 en 64 y otros en el 1 y en el 2, lo que sumado sería: 64 + 2 + 1 = 67.

Pero veamos el 127. Cuando tenemos que el número está muy cerquita de una potencia de 2 por debajo (en el caso de 127 está uno por debajo de 128 que es 27), entonces esto producirá un número con un montón de bits en uno. Por ejemplo, el 127 sería 0111 1111, ya que al sumarle 1 sería 1000 0000 que es el valor de 128.

Ahora, supongamos que tengo el 123, lo que podemos hacer es escribir un 127 (que lo conocemos), 0111 1111, y apagamos bits de tal modo que al restárselo a 127 me de el número que quiero, por ejemplo si apagáramos el bit correspondiente al 4 (22), eso le quitará 4 al valor de 127, por ende el número quedaría 0111 1011 127 – 4 = 123, que es el número que estábamos buscando representar.

Ahora, si el número no está cercano a estos trucos, tenemos que construirlo con sumas y restas.

Veamos el 188, pregunto por los dígitos que se ajusten de mayor a menos.
¿188 está por encima de 128? Sí, lo pongo en 1 y le resto 128, 188-128=60.
El número va quedando 1??? ????
¿60 está por encima de 64? No, lo pongo en 0 y pregunto por el siguiente.
El número va quedando 10?? ????
(Note que hasta este punto podemos usar el truco de números que están por debajo cercano a una potencia de 2, no desaproveche estás ocasiones cuando quiera ahorrar tiempo, sin embargo seguiremos para ejemplificar el proceso “largo”).
¿60 está por encima de 32? Sí, lo pongo en 1 y le resto 32, 60-32=28.
El número va quedando 101? ????
¿28 está por encima de 16? Sí, lo pongo en 1 y le resto 16, 28-16=12.
El número va quedando 1011 ????
¿12 está por encima de 8? Sí, lo pongo en 1 y le resto 8, 12-8=4.
El número va quedando 1011 1???
¿4 está por encima de 4? ¡ES IGUAL!, lo pongo en 1 y todo lo demás en cero, ya que, no hay nada más que buscar.
Así que el número quedó 1011 1100.

Otra manera de verlo:
Imagina que tienes una deuda menor de 255 simoleones (§) supongamos §188 y sólo tienes 8 monedas, las monedas que tienes son:
– §128
– §64
– §32
– §16
– §8
– §4
– §2
– §1

Seleccionas las monedas que al sumar su valor den §188 (te aseguro que hay una sola combinación posible. También te aseguro que para todo valor entre §0 y §255 existe una y solo una combinación que suma la cantidad exacta que buscas.

Otro truco es que todo número binario que termine en 1, es impar, por consecuencia toda representación binaria de un número termina en 1. Y es algo lógico, el único bit que suma un valor impar es el último.

Mientras más practiques esto verás las cosas mucho más fáciles, tienes que practicar mucho si quieres ser rápido con esto.

Por: Héctor Guzmán.

Deja un comentario