Sistema Númerico
Publicado por Romulo 21/09/2003
[ Hits: 7.057 ]
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)
#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("{FONTE}33[01;33;41m");
printf("{FONTE}33[8;23H");
printf("+-----------[MENU PRINCIPAL]-----------+");
printf("{FONTE}33[9;23H");
printf("| 1 - Converter um número decimal |");
printf("{FONTE}33[10;23H");
printf("| 2 - Converter um número hexadecimal |");
printf("{FONTE}33[11;23H");
printf("| 3 - Converter um número octal |");
printf("{FONTE}33[12;23H");
printf("| 4 - Converter um número binário |");
printf("{FONTE}33[13;23H");
printf("| 5 - Créditos |");
printf("{FONTE}33[14;23H");
printf("| 6 - Sair |");
printf("{FONTE}33[15;23H");
printf("+------------------[S.Numérico v.0.3]--+");
printf("{FONTE}33[00m");
printf("{FONTE}33[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("{FONTE}33[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("{FONTE}33[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("{FONTE}33[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]!='{FONTE}';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);
}
bolinha que rebate nas bordas da janela (com SDL)
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (1)
Preciso recuperar videos *.mp4 corrompidos (1)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (6)









