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

KAOFRN || EL.KAOS BLOG 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

Harold Salvador Rivera dijo...

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

Nayeli cp dijo...

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

Publicar un comentario en la entrada

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