Ir ao conteúdo
  • Cadastre-se

vocês poderiam me ajudar nesse programinha em c++


Visitante
Ir à solução Resolvido por dontpanic,

Posts recomendados

O sistema binário é o mais importante sistema de numeração em sistemas digitais. Esse tipo de sistema permite a representação de qualquer quantidade utilizando somente dois algarismos, o 0 e o 1. A conversão entre o sistema decimal e o sistema binário pode ser feita utilizando divisões sucessivas por 2. A conversão do número 12 por exemplo, é equivalente a 1100.

12 | 2

  0   6 | 2

     0  3 | 2

         1   1

Desenvolva um programa que solicite um valor ao usuário e imprima na tela seu correspondente em binário.

Olha o que eu fiz:

 

#include <iostream>

using namespace std;

int main()
{
    int a;
    int b[ ];                  //Eu sei não quantos algarismos terá o vetor, pois eu não sei fazer um vetor q terá valores indefinidos!!
    int i=0;
    cout<<"Digite o numerurzin ae: ";
    cin>>a;
    do{
        i++;
        b=a%2;
        a/=2;
    }while (a<=1);
    cout<<"Esse numerurzin em binario é: "<<endl;
    for (int j=0;j<i;j++){
        cout << " " << b[j];
    }
    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • Solução

Se você quiser alocar dinamicamente seu vetor, use isso:

 

int *b;b = new int[10]; // b tem 10 posições agora delete [] b; // liberar a memória no final do programa

 

E pra saber quantos bits você precisa pra representar um número é só pegar o múltiplo de 2 dele e somar 1.

8 = 2^3 +1 --> pra representar 8 você precisa de 4 bits

53 = 2^6 +1 --> pra representar 53 você precisa de 7 bits

Link para o comentário
Compartilhar em outros sites

Na rotina de divisão, você está incrementando o valor "i" antes de sua utilização, fazendo com que a posição na matriz seja 1 (um) ao invés da posição inicial 0 (zero).

A verificação para finalização das divisões está errada. Na forma que você fez, a rotina será executada apenas uma vez.

    do    {        b[i] = a % 2;        a /= 2;        i++;    }    while ( a > 2 );
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...