strhextoint.c

来自「用c语言实现16进制转10进制」· C语言 代码 · 共 71 行

C
71
字号

#include <stdio.h>
#include <string.h>
int strHexToInt(char* strSource)
{ 
 int nTemp=0;
 int i,j,len,flen;

 len = strlen(strSource);
 flen = --len;
  for(i = 0;  i <= len;  i++)
  {
	 if(strSource[i] > 'g'  || strSource[i] < '0' || ( strSource[i] > '9' && strSource[i] < 'A' ) )
	 {
		 printf("请输入正确的16进制字符串!","输入错误");
	         return -1;
	 }	 
	 else
	 {
                 int nDecNum;
                 switch(strSource[i])
                 {
                     case 'a':
                     case 'A':   nDecNum = 10;   break;
                     case 'b':
                     case 'B':   nDecNum = 11;   break;
                     case 'c':
                     case 'C':   nDecNum = 12;   break;
                     case 'd':
                     case 'D':   nDecNum = 13;   break;
                     case 'e':
                     case 'E':   nDecNum = 14;   break;
                     case 'f':
                     case 'F':   nDecNum = 15;   break;
                     case '0':
                     case '1':
                     case '2':
                     case '3':
                     case '4':
                     case '5':
                     case '6':
                     case '7':
                     case '8':
                     case '9':    nDecNum = strSource[i] - '0';     break;
                     default:     return 0;   
                 }

                    for(j = flen; j > 0; j-- )
		    {
		       nDecNum *= 16;
		    
		    }
		    flen--;

		    nTemp += nDecNum;
		    
         }
       }
      printf("%d\n",nTemp);
    
  
}


int main()
{
   strHexToInt("E6C2EFA");
   return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?