#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//*****işte fonksiyon burası;)***
int cevir(char *hexsayi)
{
int du;//dizi uzunluğu
int dd;//dizi denetim
du=strlen(hexsayi);//dizi uzunluğunu belirle
int desi=0;//desimal sayı
for(dd=0;dd<du;dd++)//her bir karakterin işlemek için
{
if(dd!=0)//eğer 1den fazla basamak varsa
desi*=16;//16 ile çarp ki basamak atlamış olalım
switch(hexsayi[dd])//karakterin ascı karşılığını bul
{
case '0':desi=(desi+0);
break;
case '1':desi=(desi+1);
break;
case '2':desi=(desi+2);
break;
case '3':desi=(desi+3);
break;
case '4':desi=(desi+4);
break;
case '5':desi=(desi+5);
break;
case '6':desi=(desi+6);
break;
case '7':desi=(desi+7);
break;
case '8':desi=(desi+8);
break;
case '9':desi=(desi+9);
break;
case 'a':
case 'A':desi=(desi+10);
break;
case 'b':
case 'B':desi=(desi+11);
break;
case 'c':
case 'C':desi=(desi+12);
break;
case 'd':
case 'D':desi=(desi+13);
break;
case 'e':
case 'E':desi=(desi+14);
break;
case 'f':
case 'F':desi=(desi+15);
break;
default:printf("\n\n\n\t\t\tHatali sayi!................");//hata
return -1;//hata olduğunu anlat
break;
}
}
return desi;//desimal gönder
}
//**********buraya kadar************
int main(int argc, char *argv[])
{
char hex[250];
int dec;
printf("\n\n\n\n\t\tHexadecimal (16'lik) sayiyi giriniz:");//kullanıcı ile iletişim
scanf("%s",hex);//hex sayımızı string olarak alıyoruz
dec=cevir(hex);//çeviriyoruz
if(dec!=-1)//eğer hata yoksa
printf("\n\n\t\t%s\t=\t%d",hex,dec);//gösteriyoruz:)
system("PAUSE>r");
return 0;
}