Conversión de decimal a binario en C++.




El siguiente código realiza la conversión de un número decimal a binario utilizando el método de división.

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main(){
  int i,j,num,num2,res,x[10];
  cout << "Dame numero: ";
  cin >> num;
  num2 = num;
  for(i = 1 ; i <= num ; i++){ // Determina (i) las divisiones que se harán
   num2 = num2 / 2;
      if(num2 == 1)
         break;
  }
  for(j = 1 ; j <= i; j++){ // Realiza las operaciones para la conversión
      res = num % 2;
      if(res == 1)
         x[j] = 1;
      else if(res == 0)
              x[j] = 0;
      num = num / 2;
  }
  cout << "1"; /* Coloca un 1 al comienzo del numero binario,
                  ya que todo numero binario comienza con 1*/
  for(j = i ; j > 0 ; j--) // Imprime el número binario, precede al 1 anterior
      cout << x[j];
  cout << endl;
  system("PAUSE");
  return 0;
  }
  
Este programa realiza la conversión de decimal a binario

Descargar código.

14 comentarios:

Anónimo dijo...

es un programa choto :(

Blue Army dijo...

pues si sirve
gracias me puede servir

d4rkd3m0n! dijo...

gracias !!

Anónimo dijo...

dios, me salvaste el pellejo gracias

Erick Franco Velasquez Mamani dijo...

creo ke mejor seria usando una funcion recursiva... a vver si a alguien le sirve... es menos codigo ...

long abinario (long num){
if (num < 2){
return num;
}
else {
return num%2 + ( 10 * abinario (num/2));
}
}

Anónimo dijo...

la funcion recursiva esta wena =P

Anónimo dijo...

Expliquenme como funciona la recursiva

Anónimo dijo...

Alguien sabe donde se podría aplicar un programa que haga esta conversion dentro de la industria o la computación

Anónimo dijo...

void binario(int n)
{
if (n!=0)
{
binario(n/2);
cout<>num;
cout<<endl;
cout<<"El numero en binario es:"<<endl;
cout<<endl;
binario(num);
cout<<endl;

getch();

return 0;
}

Anónimo dijo...

Ahí les va algo mas chido a ver si les sirve

#include

int fac[]={128,64,32,16,8,4,2,1};// Factores
int bin[8];// Binario

int num, cont, suma=0;

void numero()
{
printf("Ingrese el numero que se va a convertir del 1 a 255\n\n");
printf("Numero: ");
scanf("%d", &num);


}

void conversion()
{
for(cont=0; cont<8; cont++)
{
if(fac[cont]+ suma <= num)
{
bin[cont]=1;
suma+=fac[cont];
}
else
bin[cont]=0;
}

}

void result()
{
printf("Binario:\t");
for(cont=0; cont<8; cont++)
{
printf("%d ", bin[cont]);
}

}

main()
{
numero();
conversion();
result();

return 0;
}

Anónimo dijo...

Lo aplicas para convertir la direccion ip en binario y así determinar la dirección a dónde se conecta y la máscara de subred se cálcula por medio de binarios

Anónimo dijo...

gracias

Unknown dijo...

sta¡¡ bueno¡¡¡ pero xk no usar¡¡ solo "using namespace std;" .. en ves de ponerle a cada uno O.o¡¡

Unknown dijo...

y para convertirlo con numeros fraccionarios, por ejemplo:
1101001.101 de bianrio a decimal y viceversa(168.65).

Publicar un comentario

Utiliza nuestro foro de electronica si tienes dudas no relacionadas con este tema.