Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Caius Carneiro

C++ Código em c++ decimal para binário

Recommended Posts

Boa tarde, sou iniciante em programação e estou com dificuldades na resolução dessa questão. Ela é um pouco extensa, mas se alguém puder ajudar eu agradeço muito.

 

Questão 9. Uma maneira simples de se converter um número inteiro para sua forma binária é utilizar subtrações sucessivas. Para tanto, subtrai-se do número a maior potência 2^p que se pode subtrair do mesmo. número em questão quando em forma binária possuirá um bit 1 na posição p. O processo é então aplicado sucessivamente ao resto da subtração anterior até que o resto se torne zero. As posições p das potências 2^p que foram subtraídas nesse processo serão os bits 1 do número e todas as demais serão zero. Além disso, qualquer potência 2p maior que o número também será um zero. Assim, se 89 for um inteiro de 8 bits teremos também que a posição 7 será 0, pois 2^7 > 89 e teremos 89 - 2^6 = 25, 25 - 2^4 = 9, 9 - 2^3 = 1 e 1 - 2^0 = 1, de modo que os bits das posições 0, 3, 4, e 6 serão 1 e os bits das posições 1, 2, 5 e 7 serão 0. Logo, temos que 8910 = 010110012.

Escreva um programa em C++ que leia um inteiro de 16 bits e o imprima em formato binário usando o método descrito acima. Observe que a maior potência de 2 presente em um número de 16 bits é 2^15. Você precisará utilizar a estrutura condicional if...else neste programa. O programa pode ser escrito de forma curta usando a estrutura de repetição for( ; ; ).

Editado por Simon Viegas
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá tudo explicado já. fácil d+, só se não aprendeu a escrever em C. Se esse é o caso. Tem ótimos livros gratuitos na internet vai buscar.

Editado por Mauro Britivaldo
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Caius Carneiro     para converter de decimal para binário você precisa usar o comando mod que em c / c++   é   % , então você precisa criar um vetor com 16 posições para armazenar o número convertido , e depois de pegar o número decimal coloque um while assim :

j=15;
while(decimal > 0){
    if(decimal % 2 == 0)
        vetor[j]=0;
    else
        vetor[j]=1;
    j--;
    decimal /= 2;
}

com isso é só imprimir usando um for de zero até enquanto for menor que 16 ,

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010, pois é cara, boa noite. É que seria mais interessante e didático se a questão pudesse ser resolvida utilizando o método que a própria questão dá. Entende? O das subtrações sucessivas.

Editado por Simon Viegas
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Caius Carneiro.

 

10 horas atrás, Caius Carneiro disse:

@devair1010, pois é cara, boa noite. É que seria mais interessante e didático se a questão pudesse ser resolvida utilizando o método que a própria questão dá. Entende? O das subtrações sucessivas.

 

Então, não é uma questão de interessionismo ou didaticimos, mas sim de obrigatoricismo mesmo... ou seja, tem que ser feito da forma que foi pedida. Ponto!

 

Em 16/03/2018 às 12:09, Caius Carneiro disse:

Escreva um programa em C++ que leia um inteiro de 16 bits e o imprima em formato binário usando o método descrito acima

 

Qual método?

Em 16/03/2018 às 12:09, Caius Carneiro disse:

Uma maneira simples de se converter um número inteiro para sua forma binária é utilizar subtrações sucessivas [...]

 

Então, a solução "dada" por @devair1010 não serve para o seu caso. A questão principal não é o resultado em si, mas sim o método para chegar ao resultado (que por coerência deve ser correto também).

 

 

Minha sugestão seria a seguinte: tente resolver esse problema mentalmente... utilize um papel e caneta para auxiliar nos cálculos... ou seja, sem envolver uma linguagem de programação específica. O C++ ou qualquer outra linguagem entre apenas para automatizar.

 

Mais pra frente, converte para C++, ou seja, sua preocupação no momento é tentar entender o enunciado e seguir o passos... passar para C++ é a parte mais fácil, mas é posterior!!!

 

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Exatamente, vou tentar esse método para resolver próximos exercícios. Sempre encontro dificuldade em entender esse tipo de questão envolvendo aritmética e álgebra. Quanto a questão acima, consegui resolvê-la com a ajuda de alguns amigos. Muito obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×