1. 程式人生 > >C中16進位制轉換成10進位制函式

C中16進位制轉換成10進位制函式

  • 第一種情況:16進制中不含字母(a,b,c,d,e,f)
  long HexToDec(int nSource)
{
    long nResult=0;
    int k=16;   // 16進位制     
    int n=1;    // 位權
    while(nSource)
    {
         nResult+=(nSource%10)*n;
         nSource/=10;
         n*=k;
    }
    return nResult;
} 
  • 第二種情況:16進制中含字母(a,b,c,d,e,f)(不含字母也可使用)
 long
fun(char *s) { int i,t; long sum=0; for(i=0;s[i];i++) { if(s[i]<='9') t=s[i]-'0'; else t=s[i]-'a'+10; sum=sum*16+t; } return sum; }