1. 直接看示例:
char str[100] = "ab12"; //或者”0xab12”均可;
unsigned long x = strtoul(str, NULL, 16); //得到的 x= 0xab12
若记不住函数名strtoul,在MSDN上搜索“atoi”,最下面的see also里即是
2. 来看高版本VS时,支持64位的16进制字符串转换:_strtoui64
char str[100] = "10446744073709551615";
unsigned __int64 u =_strtoui64(str, NULL, 10);
printf("10进制的字符串转换结果:\r\n");
printf( "u = %I64u\n", u );
printf( "u = 0x%I64x\n\n", u );
printf("16进制的字符串转换结果:\r\n");
strcpy(str, "0x90fa4a62c4dfffff");
u =_strtoui64(str, NULL, 16);
printf( "u = %I64u\n", u );
printf( "u = 0x%I64x\n\n", u );