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;
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment