Programa binconv
Name: binconv
Utility : decimal to binary representation converter.
Author: Miguel Colom (miguelco at arrakis dot es)
Description:
It reads an integer positive number in decimal representation
from the standard input (stdin) and its output
is the binary representation of that number.
The number must be ended with a '-' sign.
Example : echo "1797693134862-" | ./binconv
Date: 19/12/03 02:10
Copyright: GPL
Historia
Este programa vino motivado por un mensaje en la lista de correo de Bulma en
el que alguien obtuvo el valor de 2^1024 con el programa bc de Linux, pero quería comprobar si
realmente ese valor era correcto. Obviamente, no se puede comprobar el resultado con el mismo programa
que lo ha generado.
Así que programé binconv, que es capaz de mostrar la representación binaria de cualquier número
decimal positivo, siempre y cuando se conozca su longitud en bits. Esto es necesario para evitar que el programa
desborde su buffer, en cuyo caso el resultado no es correcto.
Una posible mejora puede consistir en no tener que recompilar la variable que controla la capacidad de los buffers cuando
el tamaño sea insuficiente, y que se pueda cambiar de forma automática y en ejecución.
¿Y cuánto es 2 elevado a 1024?
En su representación decimal es:
17976931348623159077293051907890247336179769789423065727343008115773
26758055009631327084773224075360211201138798713933576587897688144166
22492847430639474124377767893424865485276302219601246094119453082952
08500576883815068234246288147391311054082723716335051068458629823994.
En binario es un uno seguido de 1024 ceros.
Compilación
Hay que compilarlo asÍ:
g++ binconv.cpp -o binconv
Código
Puedes ver el código del programa en HTML:
Implementación de binconv.cpp
o descargarte un ZIP con el código y un ejecutable para Linux:
binconv.zip