十六进制转整型

直接上代码:
 1  int CDlgPump::ChangeNum(CString str, int length)
 2 {      
 3      char  revstr[16]    = {0};                 // 根据十六进制字符串的长度,这里注意数组不要越界   
 4       int   nNum[16]        = {0};
 5      int   nCount        = 1;
 6      int   nResult        = 0;
 7 
 8     strcpy_s(revstr, str);
 9 
10      for( int i = length-1; i>= 0; i--)
11     {
12          if ((revstr[i] >= '0') && (revstr[i]<='9'))
13             nNum[i] = revstr[i] -48;             // 字符0的ASCII值为48   
14           else  if ((revstr[i] >= 'a') && (revstr[i] <= 'f'))
15             nNum[i] = revstr[i] - 'a' +10;
16          else  if ((revstr[i] >= 'A') && (revstr[i] <= 'F'))
17             nNum[i] = revstr[i] - 'A' + 10;
18          else
19             nNum[i] = 0;
20         nResult = nResult+nNum[i]*nCount;
21         nCount  = nCount*16;                         // 十六进制(如果是八进制就在这里乘以8)       
22      }
23      return nResult;
24 }
25 

你可能感兴趣的:(十六进制转整型)