Baixe o app para aproveitar ainda mais
Prévia do material em texto
#include<stdio.h> #include<string.h> #include<math.h> int main () { char hexa[16] = "0123456789ABCDEF"; char octa[8] = "01234567"; char binario[2] = "01"; int opcao,tamanho=0,resultado=0,valor_auxiliar=0,valor_convertido=0,posicao; char valor [16]; int contador,cont_potencia,numero,i; char vetor[50]; while (opcao!=13) { printf ("\n Digite a opcao de conversao:\n"); printf (" 1 - Decimal para hexadecimal:\n"); printf (" 2 - Decimal para octal:\n"); printf (" 3 - Decimal para binario:\n"); printf (" 4 - Binario para decimal:\n"); printf (" 5 - Binario para octal:\n"); printf (" 6 - Binario para hexadecimal:\n"); printf (" 7 - Octal para decimal:\n"); printf (" 8 - Octal para binario:\n"); printf (" 9 - Octal para hexadecimal:\n"); printf (" 10 - Hexadecimal para decimal:\n"); printf (" 11 - Hexadecimal para octal:\n"); printf (" 12 - Hexadecimal para binario:\n"); printf (" 13 - Sair!\n"); scanf ("%d",&opcao); getchar (); switch(opcao) { case 1: system("cls"); printf ("Decimal para hexadecimal:\n"); printf ("Digite o numero para ser convertido:\n"); scanf ("%d",&numero); contador = 0; while (numero>0) { valor_auxiliar = numero%16; resultado = numero/16; numero = resultado; valor[contador] = hexa[valor_auxiliar]; contador++; } printf ("Numero convertido:"); for (i=contador-1;i>=0;i--) { printf ("%c",valor [i]); } break; case 2: system("cls"); printf ("Decimal para octal:\n"); printf ("Digite o numero para ser convertido:\n"); scanf ("%d",&numero); contador = 0; while (numero>0) { valor_auxiliar = numero%8; vetor[contador] =valor_auxiliar; resultado = numero/8; numero = resultado; contador++; } printf ("Numero convertido:"); for (i=contador-1;i>=0;i--) { printf ("%d",vetor[i]); } break; case 3: system ("cls"); printf ("Decimal para binario:\n"); printf ("Digite o numero para ser convertido:\n"); scanf ("%d",&numero); contador = 0; while (numero>0) { valor_auxiliar = numero%2; vetor[contador] = valor_auxiliar; resultado = numero/2; numero = resultado; contador++; } printf ("Numero convertido:"); for (i=contador-1;i>=0;i--) { printf ("%d",vetor[i]); } break; case 4: system ("cls"); printf ("Binario para decimal:\n"); printf ("Digite o numero para ser convertido:"); gets (valor); tamanho=strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<2; contador++) { if(valor[posicao] == binario[contador]) { valor_auxiliar= pow(2,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); printf("Numero convertido: %d",valor_convertido); break; case 5: system ("cls"); printf ("Binario para octal:\n"); printf ("Digite o numero a ser convertido:"); gets (valor); tamanho = strlen(valor); cont_potencia = tamanho-1; posicao = 0; valor_convertido = 0; do { for (contador=0;contador<2;contador++) { if (valor[contador] == binario[posicao]); { valor_auxiliar = pow(2,cont_potencia); valor_auxiliar = valor_auxiliar*contador; valor_convertido = valor_convertido + valor_auxiliar; } } cont_potencia--; posicao++; } while(posicao<tamanho); numero = valor_convertido; contador=0; while(numero>0) { valor_auxiliar = numero%8; vetor[contador]=valor_auxiliar; contador++; resultado=numero/8; numero = resultado; } printf ("Numero convertido:"); for (i=contador-1;i>=0;i--) { printf ("%d",vetor[i]); } break; case 6: system ("cls"); printf ("Binario para hexadecimal:\n"); printf ("Digite o numero a ser convertido:"); gets(valor); tamanho=strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<2; contador++) { if(valor[posicao] == binario[contador]) { valor_auxiliar= pow(2,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); numero=valor_convertido; contador=0; while (numero>0) { valor_auxiliar=numero%16; resultado=numero/16; numero=resultado; valor[contador]= hexa[valor_auxiliar]; contador++; } printf ("numero convertido:"); for (i=contador-1; i>=0; i--) { printf("%c",valor[i]); } break; case 7: system ("cls"); printf ("Converter Octal para decimal:\n"); printf ("Digite o numero a ser convertido:"); gets(valor); tamanho=strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<8; contador++) { if(valor[posicao] == octa[contador]) { valor_auxiliar= pow(8,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); printf("Numero convertido: %d",valor_convertido); break; case 8: system ("cls"); printf ("Octal para binario:\n"); printf ("Digite o numero a ser convertido:\n"); gets (valor); tamanho = strlen(valor); posicao=0; cont_potencia=tamanho-1; do { for (contador=0; contador<8; contador++) { if(valor[posicao] == octa[contador]) { valor_auxiliar= pow(8,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); numero = valor_convertido; contador=0; while (numero>0) { valor_auxiliar=numero%2;vetor[contador]=valor_auxiliar; contador++; resultado=numero/2; numero=resultado; valor[contador]= hexa[valor_auxiliar]; } printf ("numero convertido:"); for (i=contador-1; i>=0; i--) { printf("%d",vetor[i]); } break; case 9:system("cls"); printf ("Converter octal para hexadecimal:\n"); printf ("Digite o numero a ser convertido:"); gets(valor); tamanho=strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<8; contador++) { if(valor[posicao] == octa[contador]) { valor_auxiliar= pow(8,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); numero = valor_convertido; contador=0; while (numero>0) { valor_auxiliar=numero%16; resultado=numero/16; numero=resultado; valor[contador]= hexa[valor_auxiliar]; contador++; } printf ("numero convertido:"); for (i=contador-1; i>=0; i--) { printf("%c",valor[i]); } break; case 10: system ("cls"); printf ("Converter hexadecimal para decimal:\n\n"); printf ("Digite o numero a ser convertido:\n"); gets(valor); tamanho=strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<16; contador++) { if(valor[posicao] == hexa[contador]) { valor_auxiliar= pow(16,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); printf("%d",valor_convertido); break; case 11: system ("cls"); printf ("Hexadecimal para octal:\n"); printf ("Digite o numero para ser convertido:"); gets (valor); tamanho = strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<16; contador++) { if(valor[posicao] == hexa[contador]) { valor_auxiliar= pow(16,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); numero = valor_convertido; contador=0; while (numero>0) { valor_auxiliar=numero%8; vetor[contador]=valor_auxiliar; resultado=numero/8; numero=resultado; contador++; } printf ("Numero convertido:"); for (i=contador-1; i>=0; i--) { printf("%d",vetor[i]); } break; case 12: system("cls"); printf ("Hexadecimal para binario:\n"); printf ("Digite o numero a ser convertido:"); gets(valor); tamanho=strlen(valor); posicao=0; cont_potencia=tamanho-1; valor_convertido=0; do { for (contador=0; contador<16; contador++) { if(valor[posicao] == hexa[contador]) { valor_auxiliar= pow(16,cont_potencia); valor_auxiliar=valor_auxiliar*contador; valor_convertido=valor_convertido+valor_auxiliar; } } cont_potencia--; posicao++; } while (posicao<tamanho); numero = valor_convertido; contador=0; while (numero>0) { valor_auxiliar=numero%2; vetor[contador]=valor_auxiliar; contador++; resultado=numero/2; numero=resultado; } printf ("Numero convertido:"); for (i=contador-1; i>=0; i--) { printf("%d",vetor[i]); } break; case 13: system ("cls"); printf ("Opcao Sair!\n\nFim do programa:"); break; default: system ("cls"); printf ("Opcao de conversao invalida!!!\n\nDigite uma opcao valida:\n"); } } }
Compartilhar