Ayuda en C++
Estoy haciendo un programa en c++, pero tengo un problema, el programa es para convertir numeros decimales a binarios, el problema es ke el valor me da al reves de como deberia y kiero saber como invertirlo, si alguien me puede ayudar se lo agradecere, el codigo es el siguiente..
#include <conio.h>
#include <iostream>
using namespace std;
void waitkey (void)
{
getch();
while (kbhit())
{
getch();
}
}
char c='s';
char s1='1';
char s2='0';
main ()
{
int n;
while (c=='s'){
cout<<"nnIntroduzca un numero: ";
cin>>n;
cout<<"nn";
while (n!=1)
{
if (n%2!=0)
{
n=n-1;
n=n/2;
cout<<s1;
}
else if (n%2==0)
{
n=n/2;
cout<<s2;
}
}
cout<<"1";
cout<<"nn";
waitkey();
system("cls");
}
}
#include <conio.h>
#include <iostream>
using namespace std;
void waitkey (void)
{
getch();
while (kbhit())
{
getch();
}
}
char c='s';
char s1='1';
char s2='0';
main ()
{
int n;
while (c=='s'){
cout<<"nnIntroduzca un numero: ";
cin>>n;
cout<<"nn";
while (n!=1)
{
if (n%2!=0)
{
n=n-1;
n=n/2;
cout<<s1;
}
else if (n%2==0)
{
n=n/2;
cout<<s2;
}
}
cout<<"1";
cout<<"nn";
waitkey();
system("cls");
}
}
Este es un problema conocido, en la conversion de un numero a representacion binaria y hay varias formas de solucionarlo : un array para almacenar las cifras, impresion en la pantalla con manipulacion, etc.
Te mando el sistema utilizando recursion, que es el que mas me gusta.
#include<iostream.h>
#include <iomanip.h>
unsigned int GetNum()
{
unsigned int n;
cout << setw(20) << "get num : ";
cin >> n;
return n;
} // GET NUM
void Bin(unsigned int n)
{
if(!n)
return;
Bin(n/2);
cout << n % 2;
} // BIN
void main(void)
{
unsigned int n = GetNum();
while(n)
{
cout << setw(20) << "binary number : ";
Bin(n);
cout << endl;
n = GetNum();
}
} // MAIN
Te mando el sistema utilizando recursion, que es el que mas me gusta.
#include<iostream.h>
#include <iomanip.h>
unsigned int GetNum()
{
unsigned int n;
cout << setw(20) << "get num : ";
cin >> n;
return n;
} // GET NUM
void Bin(unsigned int n)
{
if(!n)
return;
Bin(n/2);
cout << n % 2;
} // BIN
void main(void)
{
unsigned int n = GetNum();
while(n)
{
cout << setw(20) << "binary number : ";
Bin(n);
cout << endl;
n = GetNum();
}
} // MAIN
