C中16進位制轉換成10進位制函式
阿新 • • 發佈:2019-01-31
- 第一種情況: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;
}