Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

Piensa en un Número

–Fundamentos del Sistema Binario–

Existe un juego de niños que supuestamente es para averiguar el número que alguien está pensando, no recuerdo los detalles técnicos pero mas o menos consiste en ver una serie de cartas con cifras impresas y decir si la que uno tiene en mente aparece o no en cada una. Al final el que muestra las cartas dice en voz alta la cifra oculta y todos aplauden. El sistema de este juego consiste en la numeración binaria. Esta entrada es sobre una manera sencilla de conviertir un número ‘normal’ al hermético sistema binario.
Antes de entrar en los detalles escabrosos, debo denunciar que en la carrera de ingeniería en computación de casi todas las universidades (con ‘u’ minúscula) se enseña un método que consiste en dividir el número normal entre dos y anotar el residuo, volver a dividir el cociente entre dos y anotar de nuevo el residuo y así hasta que el resultado de la división sea cero, para después voltearse y ya escribirse en binario. Este método es bueno para convertir un número ‘normal’ a otro de cualquier base, (solo hay que cambiar el divisor por la base que queramos) pero en mi opinión dicho método es demasiado tardado y complicado, no nos da información sobre desbordamientos, signos y es muy fácil equivocarse en el valor posicional.
Otra razón es que los ‘números normales’ son el patito feo en el mundo de las computadoras. Los sistemas verdaderamente importantes son el binario, el octal y el hexadecimal. Convertir números entre estos 3 sistemas es extraordinariamente sencillo y lo veremos cuando acaben de leer esta entrada. Y es mas sencillo convertir de decimal a binario que a octal o hexadecimal. El método que usaremos hoy (que no lo inventé pero es el que me funciona ) se basa en 9 pasos

1.- Si el número es mayor que 255 no puede representarse con un byte y nos vamos al demonio.
2.- Si al número le podemos restar 128, le restamos y escribimos un uno, si no se puede escribimos un cero
3.-Vemos si al resultado anterior le podemos restar 64, si es así le restamos 64 y escribimos un uno, si no se puede escribimos un cero.
4.-Vemos si al resultado anterior le podemos restar 32, si es así le restamos 32 y escribimos un uno, si no se puede escribimos un cero.
5.-Vemos si al resultado anterior le podemos restar 16, si es así le restamos 16 y escribimos un uno, si no se puede escribimos un cero.
6.-Vemos si al resultado anterior le podemos restar 8, si es así le restamos 8 y escribimos un uno, si no se puede escribimos un cero.
7.-Vemos si al resultado anterior le podemos restar 4, si es así le restamos 4 y escribimos un uno, si no se puede escribimos un cero.
8.-Vemos si al resultado anterior le podemos restar 2, si es así le restamos 2 y escribimos un uno, si no se puede escribimos un cero.
9.-Vemos si al resultado anterior le podemos restar 1, si es así le restamos 1 y escribimos un uno, si no se puede escribimos un cero.

Este es el método que conozco, restas sucesivas sobre el número a convertir, si si puede restar se escribe uno y se resta, si no se puede (o el resultado de restar es negativo) se escribe un cero. Este método escribe exactamente 8 cifras, que es el ancho de una celda de byte. Por ejemplo, el 255 arroja ocho unos, el cero una cadena de 8 ceros, etc. Para cantidades mayores a 255 se usan celdas de byte combinadas. Por ejemplo, con 2 celdas de byte tenemor 16 bits y podemos representar desde el 0 hasta el 65535, con 4 celdas tenemos 32 bits y podemos representar desde 0 hasta el 4,294,967,296. Este numerote es importante, pues la mayor parte de los datos en una PC con Windows usan enteros de 32 bits. Bueno, una nota mas en este blog. Espero que este método les sirva sobre todo a los estudiantes de primer semestre de ingeniería en computación, al menos antes de que muten en un DBA de 150 kilos. Pues si lo hacen nunca van a necesitar usar números binarios, estos solo son para los programadores de Ensamblador y uno que otro programador despistado de c.

>>>>Pasa al siguiente nivel>>>>

***Esta nota pertenece a “La Saga del Completo Principiante”*** Da click en este enlace para pasar a la siguiente entrada de esta serie.


Diciembre 31, 2008 - Publicado por asm86 | Uncategorized | , , | Aún no hay comentarios

Aún no hay comentarios.

Deja un comentario