martes, 28 de junio de 2011

Conversión de números decimales a binarios

En esta entrada les dejare un material que encontré en la Internet que nos puede servir de mucha ayuda en la conversión de números decimales a Binarios.


Para empezar les dejare este vídeo donde te muestra los pasos para la conversión ya mencionada, espero les sirva de ayuda:


A continuación les dejo una tabla de conversión que encontré en www.ascii.cl, nos puede servir para comparar y verificar que hicimos bien nuestra operación, solo basta con que le den clic aquí en la palabra Tabla de conversión y podrán ir a la pagina directamente a esta tabla.
También les dejare el código de un programa que hice basándome en unos ejemplos que investigue, el código  esta hecho en C++ y es el siguiente:

#include<stdio.h>
#include<conio.h>

/*
Programa que convierte numeros decimales a binarios
*/

void dec2bin(long decimal, char *binario); /* El dec2bin sirve para la conversion
                                             de decimal a binario*/

main() 
     long int decimal; 
     char binario[80]; 
       
     printf("Ingrese el numero que desea convertir: "); 
     scanf("%ld",&decimal); 
     printf("\n");
     dec2bin(decimal,binario); 
     printf("\nEl numero binario de: %ld es %s \n",decimal,binario); 
     
     getchar(); /* Trampa de entrar */ 
     getchar(); /* Esperar */ 
     return 0; 
     
     getch();
     } 

void dec2bin(long decimal, char *binario) 
     int a=0, N=0; /* Contadores */
     int indic_neg=0; 
     int sobrante; /* Variable para residuo */
     int ant_decimal; /* Variable para antiguo decimal */
     char temp[80]; /* Variable que contara con caracteres ya leidos */
     
     if(decimal<0) 
     { 
          decimal=decimal-1; 
          indic_neg=1; 
          }
          
     do{
          ant_decimal=decimal; /* Antiguo decimal es igual a nuevo decimal*/
          sobrante=decimal%2; /* Calculo de residuo */
          decimal=decimal/2; /* Calculando nuevo decimal */
          
          printf("%d/2 = %d, residuo = %d\n", ant_decimal, decimal, sobrante); 
          temp[a++]=sobrante + '0'; 
          }while(decimal>0); 
          
          if(indic_neg){ 
                         temp[a++] = '-';
                         } 
               else{ 
                   temp[a++] = ' '; 
                   }
                   
                   while(a>=0) 
                   binario[N++]=temp[--a]; 
                   binario[N-1]=0; 
                   }

Visite estas paginas para darme una idea de como hacer el programa:



Bueno espero les haya servido de ayuda.

1 comentario: