C++编写的16进制转换成10进制的代码

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

C++编写的16进制转换成10进制的代码

//16Radix number to Decimal
//Programming by : Erfan Nasoori
//Mail : ketn68@yahoo.com
//Date of send : 2009/1/9
 
#include<iostream.h>
#include<string.h>
#include<math.h>
#include<conio>
void main()
{
    int k=-1,j,i;
    double sum=0 ;
    int x[20];
    char hexa[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    char s[20];
    cout<<"Number in 16 radix : ";
    cin>>s;
    for(i=0 ; s[i] ; ++i)
    if(s[i] >= 'a'  &&  s[i] <= 'z')
         s[i] -= 32;
 
    for(i=0 ; s[i] ; ++i)
        for(j=0 ; j<16 ; ++j)
        if(s[i] == hexa[j])
        {
         x[++k]=j;
        }
 
    int y=strlen(s);
    for( i=(y-1) ,j=0 ; i>=0 ; --i , ++j)
    {
        sum += (pow(16,i)*x[j]);
        }
        cout<<"--------------------------------------------------"<<endl;
 
    cout<<"Radix 10 = "<<sum;
   getch();
}