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:  
Vinicius Silva Pina

Binaro para Decimal

Recommended Posts

Preciso fazer um programa que reconheça se um numero é binário ou decimal, e apresente sua conversão.

Eu estou conseguindo fazer a conversão, mas só consigo através de menu, não consigo fazer ele reconhecer e converter.

#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
void Binario_para_decimal()
{
int dec=0,num,d=1;
printf("Digite o numero binario: ");
scanf("%d",&num);
do
{
dec = dec+(num%10)*d;
d = d*2;
num = num/10;
}
while(num!=0);
printf("Numero em decimal: %d",dec);
getch();
}
void Decimal_para_binario()
{
int a;
char b[8];
printf("Digite um numero em decimal:");
scanf("%d",&a);
itoa(a,b,2);
printf("Numero em binario: %s",b);
getch();
}

void Menu()
{
int opcao = 0;
printf(" 1 - Binario para decimal\n");
printf(" 2 - Decimal para binario\n");
scanf("%d", &opcao);
if (opcao == 1)
{
   Binario_para_decimal();
}
else if (opcao == 2)
{
  Decimal_para_binario();
}
else if (opcao != 1 && opcao != 2)
{
    printf("Opcao invalida. Tente novamente.");
Menu();
}
}
int main()
{
   Menu();
   return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo, desculpa-me se eu estiver me metendo onde não deveria, mas há uma questão conceitual que me perturba ao ler o teu enunciado. Falo do que escreveste em português, nada do código que o segue. Tu pedes uma ajuda para "fazer um programa que reconheça se um número é binário ou decimal, e apresente sua conversão.". Pois bem, número é um conceito, ele representa uma quantidade de algo que pode ser contabilizado e é representado graficamente por algarismos ou cifras. Um sistema numérico determina a forma como um número é representado graficamente de acordo com a quantidade de algarismos que ele dispõe para representá-los. Portanto um número não pode ser identificado como pertencente a um sistema numérico ou a outro a não ser por suas propriedades. Em outras palavras, tu descobrirás se um número é binário, ternário, quaternário, octal, decimal, hexadecimal ou seja o que for, de acordo com um referencial: observando o resultado de uma soma, de uma multiplicação, de uma subtração, ou várias operações consecutivas. Vamos um pouco mais adiante, observemos a representação gráfica a seguir, cujo número eu não posso dizer qual é só olhando para o que está impresso:

 

1000

 

Em sistema decimal, significa mil, mas em sistema binário representa ... como dizer em bom português? Não sei, só sei que EQUIVALE ao número que representamos graficamente como 8 (oito). Em sistema quaternário, significa o equivalente a 64 no sistema decimal e assim por diante. Mesmo os sistemas numéricos com mais de 10 algarismos, onde os algarismos maiores que 9 são representados por letras, não é possível identificar se AA pertence a um sistema de 11, 12, 13, ... 16, ... 22 ... 45 ou mais algarismos, consequentemente é impossível convertê-lo a qualquer sistema numérico diferente.

 

Em suma, quem determina se um número é decimal ou binário somos nós mesmos ao informar os resultados de uma conta envolvendo os algarismos que representam o número ou informando o programa qual é o sistema numérico que desejamos utilizar. Sem isso não teremos jamais como saber com certeza e a conversão realizada será arbitrária, com apenas uma chance de ser correta e infinitas outras chances para errar (infinito -1).

 

Talvez tu estejas ter referindo a outra questão, então tenta explicar melhor. Mais uma vez, perdoa-me se eu estiver avaliando muito mal o que expuseste, mas esta foi a única forma de entendimento que pude alcançar até agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 23 horas atrás, Zeca Pagodinho disse:

    Caro amigo, desculpa-me se eu estiver me metendo onde não deveria, mas há uma questão conceitual que me perturba ao ler o teu enunciado. Falo do que escreveste em português, nada do código que o segue. Tu pedes uma ajuda para "fazer um programa que reconheça se um número é binário ou decimal, e apresente sua conversão.". Pois bem, número é um conceito, ele representa uma quantidade de algo que pode ser contabilizado e é representado graficamente por algarismos ou cifras. Um sistema numérico determina a forma como um número é representado graficamente de acordo com a quantidade de algarismos que ele dispõe para representá-los. Portanto um número não pode ser identificado como pertencente a um sistema numérico ou a outro a não ser por suas propriedades. Em outras palavras, tu descobrirás se um número é binário, ternário, quaternário, octal, decimal, hexadecimal ou seja o que for, de acordo com um referencial: observando o resultado de uma soma, de uma multiplicação, de uma subtração, ou várias operações consecutivas. Vamos um pouco mais adiante, observemos a representação gráfica a seguir, cujo número eu não posso dizer qual é só olhando para o que está impresso:

     

    1000

     

    Em sistema decimal, significa mil, mas em sistema binário representa ... como dizer em bom português? Não sei, só sei que EQUIVALE ao número que representamos graficamente como 8 (oito). Em sistema quaternário, significa o equivalente a 64 no sistema decimal e assim por diante. Mesmo os sistemas numéricos com mais de 10 algarismos, onde os algarismos maiores que 9 são representados por letras, não é possível identificar se AA pertence a um sistema de 11, 12, 13, ... 16, ... 22 ... 45 ou mais algarismos, consequentemente é impossível convertê-lo a qualquer sistema numérico diferente.

     

    Em suma, quem determina se um número é decimal ou binário somos nós mesmos ao informar os resultados de uma conta envolvendo os algarismos que representam o número ou informando o programa qual é o sistema numérico que desejamos utilizar. Sem isso não teremos jamais como saber com certeza e a conversão realizada será arbitrária, com apenas uma chance de ser correta e infinitas outras chances para errar (infinito -1).

     

    Talvez tu estejas ter referindo a outra questão, então tenta explicar melhor. Mais uma vez, perdoa-me se eu estiver avaliando muito mal o que expuseste, mas esta foi a única forma de entendimento que pude alcançar até agora.

    Então, preciso fazer um programa que reconheça se um número é binário ou decimal, e converte-lo.

    Se o número for binário converter para decimal, e ao contrário.

    Os números binários são formados somente por 0 e 1 dessa forma teria como reconhece-los e efetuar sua conversão, mas não consigo criar isso no programa.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    6 horas atrás, Vinicius Silva Pina disse:

    Então, preciso fazer um programa que reconheça se um número é binário ou decimal, e converte-lo.

    Se o número for binário converter para decimal, e ao contrário.

    Os números binários são formados somente por 0 e 1 dessa forma teria como reconhece-los e efetuar sua conversão, mas não consigo criar isso no programa.

     

    Como explicado antes, não há como reconhecê-los. Um número representado por 0 e 1 não é necessariamente binário. 1000, no exemplo dado, é um caso evidente.

    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

    ×