domingo, 3 de abril de 2011

Conversão de base

Converte um valor em uma base escolhida para a base decimal.


#include<stdio.h>
#include<math.h>
#include<string.h>
int BASTODEC(int base,char v[],int qtd)
{
int numdec=0,x,exp=0;
if (base==16)
{
for(x=qtd-1;x>=0;x--)
{
if(v[x]=='A' || v[x]=='a') v[x]=58;
if(v[x]=='B' || v[x]=='b') v[x]=59;
if(v[x]=='C' || v[x]=='c') v[x]=60;
if(v[x]=='D' || v[x]=='d') v[x]=61;
if(v[x]=='E' || v[x]=='e') v[x]=62;
if(v[x]=='F' || v[x]=='f') v[x]=63;
}
}
for(x=qtd-1;x>=0;x--)
{
numdec=numdec+(v[x]-48)*pow(float (base),exp++);
}
return int(numdec);
}
int main ()
{
int base,qt;
char num[10],k;
printf("Informe a base que deseja usar: ");
scanf("%d",&base);
getchar();
printf("\nInforme o numero que sera transformado a partir da base escolhida anteriormente (ate 9 digitos): ");
gets(num);
qt=strlen(num);
printf("\nO valor informado convertido em decimal eh: %d.\n\n",BASTODEC(base,num,qt));
getchar();
}

Nenhum comentário:

Postar um comentário