elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Código] Decimal a binario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Código] Decimal a binario  (Leído 3,396 veces)
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
[Código] Decimal a binario
« en: 21 Mayo 2015, 22:00 pm »

 Hola gente, como hace poco subi un codigo fuente, que convertia un binario a decimal, ahora dejo un codigo que convierte decimal a binario!, por las dudas dejo los dos códigos para el que quiera ver el otro :))

Decimal a binario

Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. #include <cmath>
  7. using std::pow;
  8.  
  9. int main()
  10. {
  11. int binario=0;
  12. int restoDivision=0;
  13. int unidadDivision=0;
  14. int numero;
  15. int iteracionBinaria=0;
  16.  
  17. cout <<"numero decimal: ";
  18. cin >> numero;
  19. cout <<endl;
  20. unidadDivision= numero;
  21.  
  22.  
  23. while (unidadDivision > 0)
  24. {
  25. restoDivision= unidadDivision % 2;
  26. unidadDivision= unidadDivision / 2;
  27.  
  28. binario+= restoDivision * pow (10.,iteracionBinaria);
  29.  
  30. ++iteracionBinaria;
  31.  
  32. if (numero == 2)
  33. {
  34. binario+= unidadDivision * pow (10.,iteracionBinaria);
  35. }
  36.  
  37. }
  38.  
  39. cout <<"b: " <<binario <<endl;
  40. cin.get();
  41. cin.get();
  42. return 0;
  43. }

Binario a Decimal

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. // Variables
  12. long int binario;
  13. long int decimal=0;
  14. long int auxBinario;
  15. int resto;
  16. bool respuesta= true;
  17.  
  18.  
  19. cout <<"Binario: ";
  20. cin  >> binario;
  21.  
  22. auxBinario= binario;
  23.  
  24. for (int contador=0; pow(10.,contador) <= binario; contador++)
  25. {
  26. resto= auxBinario % 10;
  27. auxBinario/= 10;
  28.  
  29. switch (resto)
  30. {
  31. case 0:
  32. decimal+= (resto * pow(2.0,contador));
  33. break;
  34.  
  35. case 1:
  36. decimal+= (resto * pow(2.0,contador));
  37. break;
  38.  
  39. default:
  40. respuesta= false;
  41. break;
  42. }
  43.  
  44. }
  45.  
  46. if (respuesta == true)
  47. {
  48. cout <<"\nEl binario " <<binario <<" es " <<decimal <<"\n";
  49. }
  50. else
  51. {
  52. cout <<"\nEl numero ingresado no es un binario!\n";
  53. }
  54. cin.get();
  55. cin.get();
  56. cin.get();
  57. return 0;
  58. }


En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: [Código] Decimal a binario
« Respuesta #1 en: 21 Mayo 2015, 22:25 pm »

Hola, el código está bien. Te dejo otra manera de hacerlo con desplazamientos y máscaras a nivel de bit por si te apetece echarle un vistazo:

Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int number;
  6. printf("[+] Numero decimal: ");
  7. scanf("%d", &number);
  8. if (number < 0 || number > 255) {
  9. printf("[+] Rango permitido de 0 a 255\n");
  10. return 0;
  11. }
  12.  
  13. int i;
  14. printf("[+] Resultado: ");
  15. for (i=7; i>=0; i--) printf("%d", (number>>i)&1);
  16. printf("\n");
  17. return 0;
  18. }

Saludos!


En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: [Código] Decimal a binario
« Respuesta #2 en: 21 Mayo 2015, 23:57 pm »

En C++11 normalmente me sirve esto

Código
  1. #include <bitset>
  2.  
  3. template <typename T>
  4. std::bitset<sizeof(T)*8> to_bin(const T& src)
  5. {return std::bitset<sizeof(T)*8>(src);}
  6.  

lo meto en un .h por ejemplo

Código
  1. #include <iostream>
  2. #include "to_bin.h"
  3.  
  4. int main()
  5. {
  6.  //const char* a = "001010";
  7.  //char a = 0xFA;
  8.  short a = 32;
  9.  //bool a = 1;
  10.  std::cout << to_bin(a);
  11. }
  12.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
"Ayuda" con Codigo(Pasar de Decimal a Binario)
.NET (C#, VB.NET, ASP)
Jirp96 4 6,023 Último mensaje 8 Mayo 2011, 22:20 pm
por Jirp96
codigo conversion decimal a binario y complemento a dos
Programación C/C++
m@o_614 1 17,987 Último mensaje 16 Diciembre 2011, 18:02 pm
por El_Java
[Código-PyQT4]Binario a decimal y su inverso - JaAViEr | 0x5d
Scripting
0x5d 0 2,436 Último mensaje 6 Abril 2012, 23:39 pm
por 0x5d
[Duda ] Codigo Python Binario a Decimal y viceversa *2.7*
Scripting
yujadeh 2 10,079 Último mensaje 5 Octubre 2012, 01:50 am
por yujadeh
[Codigo] Binario a Decimal
Programación C/C++
Mario Olivera 1 2,194 Último mensaje 18 Mayo 2015, 19:50 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines