Ir ao conteúdo
  • Cadastre-se
MatheusINF

C Algoritmo para Conversão entre bases

Recommended Posts

Fala galera eu preciso converter Decimais para Binário, porém não consigo sair disso

#include <stdio.h>
#include <stdlib.h>

int main()
{
    // VARIAVEIS
    int n,decimal;
    char resultado;

    // INICIO
    printf("Digite um numero em decimal: ");
    scanf("%d",n);
    decimal=n;

    while(n>1){
        if(n%2==0){
            resultado+='0';
        }else{
        resultado+='1';
        }
    n=n/2;
    }

    printf("O numero %d em binario = %s",decimal,resultado);



    return 0;
}

Pra mim é assim que se faz a conversão, olhei alguns na internet e usam algo chamado "itoa" que não tenho nem ideia do que seja, porém o meu está bem próximo dos feitos no Visualg se alguém puder me falar aonde o algoritmo está falhando e o que fazer agradeço :/

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MatheusINF   não precisa de itoa para isso não ,  precisa usar o comando mod que em c é % , então seu código pode ser assim :

#include <stdio.h>
#include <windows.h>
int main(){
    int a,i,j=7;
    char op[9];
    printf("Digite Um Numero ");
    scanf("%d",&a);
    if(a>255)a=255;
    do{
        if(a % 2 == 0)op[j]='0';
        else op[j]='1';
        /*printf("%c",op[j]);
        Sleep(500);*/
        a/=2;
        j--;
    }while(a>0);
    if(j>=0){
        for(i=j;i>=0;i--)
            op[i]='0';
    }
    op[8]='\0';
    printf("\n\n%s\n\n",op);
    return 0;
}

 

  • Curtir 2
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o que é isso?

12 minutos atrás, devair1010 disse:

if(a>255)a=255;

E esse comentario foi por qual motivo?

12 minutos atrás, devair1010 disse:

/*printf("%c",op[j]); Sleep(500);*/

De resto entendi certinho cara Vlwwwww

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MatheusINF     isso é para que se for maior que 255 dará erro , então só pode ser até esse valor .

if(a>255)a=255;

é porque coloquei tudo em uma linha só ,  mas deveria ter colocado assim  :

if( a > 255 )
    a = 255;

o comentário era só para ver ele fazendo a conversão , então como já vi , coloquei como comentário .

Editado por devair1010
  • Curtir 1
  • Amei 1

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

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

×