Ir ao conteúdo
  • Cadastre-se

Binaro para Decimal


Posts recomendados

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
Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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