十六进制字符串转int64

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

#include <math.h>

__int64 Str2Int64(char* str)

{

if(strstr(str,"0x") || strstr(str,"0X"))

{

str += 2;

__int64 tmp = 0;

int len = strlen(str);

for(int i = 0;i < len ;i++)

{

int nDecNum;

switch(str[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 = str[i] - '0';

break;

default:

return 0;

}

tmp += nDecNum*pow(16,len-i -1);

}

return tmp;

}

else

{

return _atoi64(str);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航