Função que converte números decimais em binários

Publicado por Jefferson Johner 12/08/2009

[ Hits: 35.901 ]

Homepage: http://gsxs.wordpress.com

Download convertepbinario.c




Pequeno programinha que recebe números decimas e os converte para binário.

  



Esconder código-fonte

/* Pequeno programa que recebe números decimais e os converte para binários.
  *Algoritmo por GsXs (bgnhrck@hotmail.com) 
  *Mais scripts meus em http://gsxs.wordpress.com  */

#include <stdio.h> 

/*prototipo da funcao*/
convertebinario();

/*funcao principal*/

int main()
{
convertebinario();
return(0);
}

/*Desenvolvimento da função para conversão */
int convertebinario()
{
int dec,i,q[80],r[80]; //declaração das variáveis necessárias
i=0;                   //contador de elementos da array do loop while
printf("Digite o numero decimal que serah passado para binario:\n");
scanf("%d", &dec);
printf("%d em binarios: ",dec);
  /*Algoritmo para o cálculo */
  while (dec != 1){     // enquanto o quociente for diferente de 1, o programa continuará calculando
   q[i]= dec / 2;  //array que calcula e armazena os quocientes
   r[i] = dec % 2; //array que calcula e armazena os restos
   dec=q[i];       //atribuindo novo valor para q[i], pra que seja possível a continuação do cálculo
   i++;
   }

/*Imprimindo o último quociente mais os restos de "trás pra frente" (número em binários) */ 
  while (i>=0){  
     if (q[i] == 1) printf("1%d",r[i]);
          else printf("%d",r[i]);  
   i--;
   }
printf("\n");
return(0);
}

Scripts recomendados

Sequência de Fibonacci em C

Número de Fibonacci - C++

Preloader.c - Adaptação do Tarik Ahmad (Thiago Alexandre) para linux

Matriz com strings

Produto de duas matrizes alocadas dinamicamente


  

Comentários
[1] Comentário enviado por SamL em 13/08/2009 - 18:59h

Legal cara, cheguei agora da faculdade e percebi o meu erro lá no tópico, hehehe, ainda bem que você corrigiu e fez melhor.
valeu!

[2] Comentário enviado por GsXs em 13/08/2009 - 19:20h

O problema é que acabei de perceber que com números maiores que cento e alguma coisa (não consigo ver agora porque estou em um note sem compilador) não está dando muito certo.Agora é só tentar achar um jeito pra consertar.
Obrigado :D

EDIT: A conversão está correta, é só ignorar o número não binário que aparece na frente do resultado (não estou conseguindo consertar o problema :X)

[3] Comentário enviado por pedrobatista em 12/10/2013 - 20:36h

É só colocar um i--; antes do último while.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts