Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Mario Olivera en 18 Mayo 2015, 18:18 pm



Título: [Codigo] Binario a Decimal
Publicado por: Mario Olivera en 18 Mayo 2015, 18:18 pm
 Les dejo un código que hice, pasa un binario a decimal  :D

Saludos!

Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::endl;
  4. using std::cout;
  5.  
  6. #include <cmath>
  7. using std::pow;
  8.  
  9. int main()
  10. {
  11. long int binario;
  12. long int decimal=0;
  13. long int auxBinario;
  14. int resto;
  15. bool respuesta= true;
  16.  
  17.  
  18. cout <<"Binario: ";
  19. cin  >> binario;
  20.  
  21. auxBinario= binario;
  22.  
  23. for (int contador=0; pow(10.,contador) < binario; contador++)
  24. {
  25. resto= auxBinario % 10;
  26. auxBinario/= 10;
  27.  
  28. switch (resto)
  29. {
  30. case 0:
  31. decimal+= (resto * pow(2.0,contador));
  32. break;
  33.  
  34. case 1:
  35. decimal+= (resto * pow(2.0,contador));
  36. break;
  37.  
  38. default:
  39. respuesta= false;
  40. break;
  41. }
  42.  
  43. }
  44.  
  45. if (respuesta == true)
  46. {
  47. cout <<"\nEl binario " <<binario <<" es " <<decimal <<endl;
  48. }
  49. else
  50. {
  51. cout <<"\nEl numero ingresado no es un binario!\n";
  52. }
  53. cin.get();
  54. cin.get();
  55. return 0;
  56. }


Título: Re: [Codigo] Binario a Decimal
Publicado por: engel lex en 18 Mayo 2015, 19:50 pm
Creo que allí podrías hacer el código mucho mas eficiente ahí...

Una de las cosas buenas es cambiar for por while((contador=contador/10)!=0)