Ir ao conteúdo

Posts recomendados

Postado

Olá amigos, estou com dificuldades em montar o algoritmo que transforma um numero binário digitado pelo usuário em decimal, alguém pode me ajudar?

Que seja de uma forma com conceitos básicos, pois preciso entender, estou cursando a graduação em ciência da computação

  • Amei 1
Postado

Para bens pelo curso! O que você precisa entender? Comece dizendo o que você sabe. E qual é a sua pergunta? E sim têm muitas pessoas aqui para ajudar.

 

 

  • Curtir 1
Postado

@Delaías de Souza     Você ainda não estudou vetores , mas será mais fácil se você usar um vetor de char para guardar os dígitos binários , um vetor é uma variável que pode guardar vários dados nela ,  então se você for converter  8 bits ou qualquer quantidade ,  você usa um for e dentro dele armazena no vetor os dígitos da direita para a esquerda usando o comando scanf e depois de pegar todos os dígitos e na hora de converter  você usa um loop for começando de 7 até 0 assim você pega os dígitos armazenados da esquerda para a direita e verifica se é o dígito 1 e se for então soma o valor referente a esse bit e para isso use uma variável começando de 1 e a cada bits lido do vetor multiplique essa variável por dois ,  assim no final do loop a variável decimal conterá o valor decimal dos dígitos binários ,   faça seu código e poste aqui para vermos como está e em que podemos ajudar  .

Postado

@Delaías de Souza É o suficiente. Mas como bem disse o experiente @devair1010 com vetores é melhor daí tente fazer com e sem porque o conceito é o mesmo.

 

Eu vou explicar como fazer sem ... 

Um número binário é representação numérica com milênios de idade em que cada casa binária é um expoente da base 2 e o valor final é a soma de todas as casas da sequência. Essa sequência é decrescente, ou seja, a primeira casa da sequência é maior numericamente que a última. Essa é uma característica pertinente à todo sistema numérico. Na base décima as casas das centenas dezenas e das unidades bem como seus múltiplos e submúltiplos têm expoente de base 10 e também decrescente: 100 é o mesmo que 1*10² + 0*10¹ + 0*1. O multiplicador da potência pode ser qualquer digito entre 0 e a base - 1. Assim sendo, d * 10ⁿ | d:{1, 2, 3 ... 10-1}. O mesmos para binário onde b * 2ⁿ | b:{0, 2-1}.

 

Tentei explicar de uma maneira bem conceituada, mas se não foi o bastante pesquisa mais sobre o assunto (recomendo).

 

Para calcular um valor décima processo é bem simples, simule uma entrada por exemplo x: 100. Então o primeiro valor de x é 1 daí segue a soma...

S= S * b¹ + x | S = 0 —> n = 0.

 

Veja para x:{1, 0, 0} do meu exemplo:

S inicial é igual a zero.

S(n=0)= 0   * 10¹   + 1,   S= 1

S(n=1)= 1   * 10¹   + 0,   S= 10

S(n=2)= 10 * 10¹   + 0,   S= 100.

Ou seja, o somatório é multiplicado pela base numérica a cada ciclos (loop for) e o dígito atual em x é adicionado ao produto do somatório pela base determinando a próximo somatório ou valor.

 

Aplique esse conceito a b= 2 e o resultado será a mudança de bases.

 

Obrigado.

Mais alguma coisa?

 

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...