char *的十六进制字符串转化成long

十六进制的string转换成long

long m_nFun(int m, int n)
{
	
	if(n == 0) return 1;
	if(n == 1) return m;
	return m * m_nFun(m, n-1);
}

long stringToLong(char *str)
{
	
	long i=0;
	long Num=0;
	long temp=0;
	
	int len=strlen(str);

	for (i=len-1;i>0;i--)
	{
		if (str[i]>='0'&&str[i]<='9')
		{
			temp=str[i]-48;
		}
		else if (str[i]>='a'&&str[i]<='f')
		{
			temp=str[i]-97+10;
		}
		else if (str[i]>='A'&&str[i]<='F')
		{
			temp=str[i]-65+10;
		}
		

		Num+=m_nFun(16,len-1-i)*temp;
	}
	
	return Num;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2013-03-30 01:05  weiwei_c  阅读(734)  评论(0编辑  收藏  举报