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;
}


發佈了39 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章