Thursday, January 28, 2010

2.1 - Decimal a Binario Forma 1

El siguiente problema es un ejemplo de como resolver el problema de conversión de decimal a binario de la forma que la maestra nos explico en clase. Incluye algunos comentarios.

-------------------------------------------------------------------------------------------------------------

#include <iostream>
#include <math.h>

unsigned long temp = 0;

void convierte(unsigned long decimal,int cont){
    bool bit;   
   
    if(cont == -1){                        //Calcula la potencia
        if(decimal == 0){ std::cout << 0; return; }
        while(temp<=decimal){
            temp = pow(2,cont);
            cont++;
        }
         cont -= 2;
    }
   
    temp = pow(2,cont);                    //Temporal a restar
   
    if(temp<=decimal){                    //Decide si es bit activo o no
         bit = 1;
        decimal -= temp;                //Resta del decimal
    }else{
        bit = 0;
    }
   
     std::cout << bit;                    //Imprimimos el bit
   
    if(cont > 0){                         //Recursion para seguir calculando
        cont--;
        convierte(decimal,cont);
    }
   
}

int main(){
    unsigned long dec;
   
    for(;;){                            //Ciclo infinito
        std::cout << "\nNumero a convertir: ";
        std::cin >> dec;                //Leemos el decimal
        convierte(dec,-1);
    }
   
    std::cout<<"\n";
   
    return 0;
}

No comments:

Post a Comment