Pular para o conteúdo

Sistema Númerico

Um programinha que converte números de um sistema para
outro,dicimal-hexadecimal-binário-octal.
Obs.:(Para indicar um número binário não precisa colocar o b
no final basta digitar o númer, ex.: 10010)
  
Romulo _m0dpr0b3_
Hits: 7.246 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Um programinha que converte números de um sistema para
outro,dicimal-hexadecimal-binário-octal.
Obs.:(Para indicar um número binário não precisa colocar o b
no final basta digitar o númer, ex.: 10010)
  
Download snumerico0-3.c Enviar nova versão

Esconder código-fonte

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

int pot(int x,int y);

int main()
{
int ba10, ba16, ba8, bin1[31], contr, ver, ind, opcao1, opcao2, exp;
char bin2[31];
do
{
system("clear"); /*limpa a tela*/
printf("\033[01;33;41m");
printf("\033[8;23H");
printf("+-----------[MENU PRINCIPAL]-----------+");
printf("\033[9;23H");
printf("| 1 - Converter um número decimal      |");
printf("\033[10;23H");
printf("| 2 - Converter um número hexadecimal  |");
printf("\033[11;23H");
printf("| 3 - Converter um número octal        |");
printf("\033[12;23H");
printf("| 4 - Converter um número binário      |");
printf("\033[13;23H");
printf("| 5 - Créditos                         |");
printf("\033[14;23H");
printf("| 6 - Sair                             |");
printf("\033[15;23H");
printf("+------------------[S.Numérico v.0.3]--+");
printf("\033[00m");
printf("\033[17;23H");
printf("# ");
scanf("%d", &opcao1);
switch(opcao1)
{
case 1:
system("clear");
puts("Entre com um número decimal: ");
scanf("%d", &ba10);
printf("\nHexadecimal = %X", ba10);
printf("\nOctal = %o", ba10);
/*---------------binario---------------*/
ver=ba10;
ind=0;
while(ver!=0)
{
bin1[ind]=ver%2;
ver/=2;
ind++;
}
printf("\nBinário = ");
for(contr=0;contr<=ind-1;contr++)
{
printf("\033[6;%dH", contr+11);/*substitui o gotoxy(x,y) da conio.h*/
printf("%d", bin1[ind-contr-1]); /*imprime na tela cada digito*/
}
/*-----------------fim-----------------------*/
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 2:
system("clear");
puts("Entre com um número hexadecimal: ");
scanf("%X", &ba16);
printf("\nDecimal = %d", ba16);
printf("\nOctal = %o", ba16);
/*---------------binario---------------*/
ver=ba16;
ind=0;
while(ver!=0)
{
bin1[ind]=ver%2;
ver/=2;
ind++;
}
printf("\nBinário = ");
for(contr=0;contr<=ind-1;contr++)
{
printf("\033[6;%dH", contr+11);
printf("%d", bin1[ind-contr-1]);
}
/*---------------fim-------------------*/
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 3:
system("clear");
puts("Entre com um número octal: ");
scanf("%o", &ba8);
printf("\nDecimal = %d", ba8);
printf("\nHexadecimal = %X", ba8);
/*---------------binario---------------*/
ver=ba8;
ind=0;
while(ver!=0)
{
bin1[ind]=ver%2;
ver/=2;
ind++;
}
printf("\nBinário = ");
for(contr=0;contr<=ind-1;contr++)
{
printf("\033[6;%dH", contr+11);
printf("%d", bin1[ind-contr-1]);
}
/*---------------fim-------------------*/
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 4:
system("clear");
puts("Entre com um número em binário: ");
scanf("%s", &bin2);  /*o numero binario que vai ler esta em caracteres ascii*/
for(ind=0;bin2[ind]!='\0';ind++)
{
if(bin2[ind]==48) /*aqui ele preenche o vetor bin1 com os 0 ou 1*/
{
bin1[ind]=0;
}
else
{
bin1[ind]=1;
}
}
ba10=0;
for(contr=0;contr<=ind-1;contr++)
{
if(contr!=ind)
{
exp=pot(2,ind-1-contr);
}
else
{
exp=pot(2,0); /*funcao exponencial*/
}
ba10+=bin1[contr]*exp;
}
printf("\nDecimal = %d", ba10);
printf("\nOctal = %o", ba10);
printf("\nHexadecimal = %X", ba10);
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 5:
system("clear");
puts("S.Numérico v.0.3");
puts("Desenvolvido por Waner Wodson");
puts("e mail: wwodson@terra.com.br");
puts("\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

default:
printf("\a");
break;
}
}
while((opcao1!=6)&&(opcao2!=2));
system("clear");
printf("+------------------------------------------------------+\n");
printf("|        Obrigado por usar o S.Númerico v.0.3          |\n");
printf("+------------------------------------------------------+\n\n");

return 0;
}

int pot(int x,int y)
{
int ret, controle;
ret=1;
if(y==0)
{
ret=1;
}
if(y>0)
{
for(controle=1;controle<=y;controle++)
{
ret*=x;
}
}
return(ret);
}

Verificação de ano bissexto

Encontrando letras em frases

Structs dinâmicos com UNION

Passar uma string pra caixa alta.

Escolhe Animal

#1 Comentário enviado por thi_sol em 09/06/2004 - 14:22h
A respeito do programa de conversao de Bases ... eu to encontrando uma dificuldade d faze um programa q converta bases quaisquer !!! por exemplo se eu recebe como base 11,12,13,14,15!!!!!e preciso converte
se alguem tive alguma sugestao por favor entre em contato comigo !!!!
thi_sol@hotmail.com
#2 Comentário enviado por m3ocs-d4rksun em 08/10/2005 - 17:23h
ae.. maneiro a source do programa... vou estudar isso ae... valew
#3 Comentário enviado por m2gi em 28/05/2006 - 22:26h
Prezado Romulo.

Baixei seu código-fonte, porém quando fui compilar apresentou apenas um erro na linha 124 como mostra abaixo:

for(ind=0;bin2[ind]!='
#include <stdio.h>
#include <stdlib.h>

int pot(int x,int y);

int main()
{
int ba10, ba16, ba8, bin1[31], contr, ver, ind, opcao1, opcao2, exp;
char bin2[31];
do
{
system("clear"); /*limpa a tela*/
printf("\033[01;33;41m");
printf("\033[8;23H");
printf("+-----------[MENU PRINCIPAL]-----------+");
printf("\033[9;23H");
printf("| 1 - Converter um número decimal      |");
printf("\033[10;23H");
printf("| 2 - Converter um número hexadecimal  |");
printf("\033[11;23H");
printf("| 3 - Converter um número octal        |");
printf("\033[12;23H");
printf("| 4 - Converter um número binário      |");
printf("\033[13;23H");
printf("| 5 - Créditos                         |");
printf("\033[14;23H");
printf("| 6 - Sair                             |");
printf("\033[15;23H");
printf("+------------------[S.Numérico v.0.3]--+");
printf("\033[00m");
printf("\033[17;23H");
printf("# ");
scanf("%d", &opcao1);
switch(opcao1)
{
case 1:
system("clear");
puts("Entre com um número decimal: ");
scanf("%d", &ba10);
printf("\nHexadecimal = %X", ba10);
printf("\nOctal = %o", ba10);
/*---------------binario---------------*/
ver=ba10;
ind=0;
while(ver!=0)
{
bin1[ind]=ver%2;
ver/=2;
ind++;
}
printf("\nBinário = ");
for(contr=0;contr<=ind-1;contr++)
{
printf("\033[6;%dH", contr+11);/*substitui o gotoxy(x,y) da conio.h*/
printf("%d", bin1[ind-contr-1]); /*imprime na tela cada digito*/
}
/*-----------------fim-----------------------*/
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 2:
system("clear");
puts("Entre com um número hexadecimal: ");
scanf("%X", &ba16);
printf("\nDecimal = %d", ba16);
printf("\nOctal = %o", ba16);
/*---------------binario---------------*/
ver=ba16;
ind=0;
while(ver!=0)
{
bin1[ind]=ver%2;
ver/=2;
ind++;
}
printf("\nBinário = ");
for(contr=0;contr<=ind-1;contr++)
{
printf("\033[6;%dH", contr+11);
printf("%d", bin1[ind-contr-1]);
}
/*---------------fim-------------------*/
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 3:
system("clear");
puts("Entre com um número octal: ");
scanf("%o", &ba8);
printf("\nDecimal = %d", ba8);
printf("\nHexadecimal = %X", ba8);
/*---------------binario---------------*/
ver=ba8;
ind=0;
while(ver!=0)
{
bin1[ind]=ver%2;
ver/=2;
ind++;
}
printf("\nBinário = ");
for(contr=0;contr<=ind-1;contr++)
{
printf("\033[6;%dH", contr+11);
printf("%d", bin1[ind-contr-1]);
}
/*---------------fim-------------------*/
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 4:
system("clear");
puts("Entre com um número em binário: ");
scanf("%s", &bin2);  /*o numero binario que vai ler esta em caracteres ascii*/
for(ind=0;bin2[ind]!='\0';ind++)
{
if(bin2[ind]==48) /*aqui ele preenche o vetor bin1 com os 0 ou 1*/
{
bin1[ind]=0;
}
else
{
bin1[ind]=1;
}
}
ba10=0;
for(contr=0;contr<=ind-1;contr++)
{
if(contr!=ind)
{
exp=pot(2,ind-1-contr);
}
else
{
exp=pot(2,0); /*funcao exponencial*/
}
ba10+=bin1[contr]*exp;
}
printf("\nDecimal = %d", ba10);
printf("\nOctal = %o", ba10);
printf("\nHexadecimal = %X", ba10);
puts("\n\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

case 5:
system("clear");
puts("S.Numérico v.0.3");
puts("Desenvolvido por Waner Wodson");
puts("e mail: wwodson@terra.com.br");
puts("\n1 - Menu principal");
puts("2 - Sair");
printf("\n# ");
scanf("%d", &opcao2);
break;

default:
printf("\a");
break;
}
}
while((opcao1!=6)&&(opcao2!=2));
system("clear");
printf("+------------------------------------------------------+\n");
printf("|        Obrigado por usar o S.Númerico v.0.3          |\n");
printf("+------------------------------------------------------+\n\n");

return 0;
}

int pot(int x,int y)
{
int ret, controle;
ret=1;
if(y==0)
{
ret=1;
}
if(y>0)
{
for(controle=1;controle<=y;controle++)
{
ret*=x;
}
}
return(ret);
}
';ind++) - linha de comando

O erro informa o seguinte:

character constant too long - erro apresentado durante compilação.

Vc pode me enviar a solução?

Grato - Marucio ( e-mail m2gi@uol.com.br)

Contribuir com comentário

Entre na sua conta para comentar.