Converter Base Decimal para Binária [RESOLVIDO]

1. Converter Base Decimal para Binária [RESOLVIDO]

Leonardo Trindade Pereira
ltpereira

(usa Suse)

Enviado em 03/05/2017 - 11:20h

Galera, me ajudem por favor no código abaixo!!!
Preciso representar o resultado final em base binária. Obrigado!

#include <stdio.h>
#include <ctype.h>
#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int main(void)
{
char resposta, numero;
int cont,i;
int soma;
int resto[15];

soma=cont=0;
for(i=0;i<15;i++){
resto[i]=0;
}

cout <<"\n\n\t\t Pense em um numero \n\n";

do{
cout << "\n\n\n\t Numero é par ?? ";
cin >> numero;
numero = toupper(numero);
if (numero=='S'){
cout << "\n\n\t Divida o numero por 2 ";
resto[cont]=0;
}
else{
resto[cont]=1;
cout << "\n\n\t Substraia 1, e então ";
cout << "Divida o numero por 2 ";

}
cout << "\n\n\n\t\t O resultado chegou a 1? [S/N]";
cin >> resposta;
resposta=toupper(resposta);
cont++;
}while(resposta!='S');
resto[cont]=1; // para o último

for(i=(15-1);i>=0;i--){
soma = soma+pow(2,i)*resto[i];
}
cout << "\n\n O numero q pensou é "<<soma<<"\n\n\n";


}


  


2. Re: Converter Base Decimal para Binária

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 03/05/2017 - 11:57h

Você pode utilizar bitset para converter em binário.

Ex

#include <bitset>
#include <iostream>

int main() {
int numero = 1023;
std::cout << std::bitset<32>(numero) << std::endl;
}


A saída será:
00000000000000000000001111111111


Neste exemplo, utilizei 32 dígitos, com isso, o número será limitado até 4,294,967,295 (2³²-1). Mas você pode alterar para o range que desejar.


3. Re: Converter Base Decimal para Binária

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/05/2017 - 12:01h

O seu vetor resto já contém os dígitos binários, apenas com a ordem reversa.

Considere, porém, mudar a condição de finalização do laço de repetição. Se alguém pensar em zero, a pergunta “já chegou a um” nunca terá uma resposta positiva. Pelo mesmo motivo, deixe claro que números negativos ou não-inteiros estão fora da brincadeira.


4. Re: Converter Base Decimal para Binária [RESOLVIDO]

Leonardo Trindade Pereira
ltpereira

(usa Suse)

Enviado em 04/05/2017 - 14:11h

Galera,

Muito obrigado pela ajuda.

Acrescentei a linha abaixo e funcionou.

cout << " O numero em binario \n\t";
for(i=0;i<15;i++)
{
cout <<" "<<resto[i];
}


5. Re: Converter Base Decimal para Binária [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/05/2017 - 14:23h

Acrescentaria apenas essa mistura de headers de C e C++.
Ficaria mais legal e puro se fosse em só em C++.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



6. Re: Converter Base Decimal para Binária [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 04/05/2017 - 16:10h

ltpereira escreveu:

Acrescentei a linha abaixo e funcionou.

cout << " O numero em binario \n\t";
for(i=0;i<15;i++)
{
cout <<" "<<resto[ i];
}


Pois é, mas se você imprimir esse número, estará errando. Como eu já disse acima, seu vetor resto armazena os valores dos bits na ordem INVERSA ao que se costuma usar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts