方法1:
#include <stdio.h>
int main()
{
char szValue[] = "0x11";
int nValude = 0;
sscanf(szValue,"%x",&nValude);
printf("%d/n",nValude);
return 0;
}
/*输出:
17
*/
主要用到sscanf这个库函数:
函数名: sscanf
功 能: 执行从字符串中的格式化输入
用 法: int sscanf(char *string, char *format[,argument,...]); //%x就是我们要格式化的类型,即输出十六进制
方法2:
#include <stdio.h>
#include <stdlib.h>//strtol头文件
int main()
{
char *p="0x11";
char *str;
int i = (int)strtol(p, &str, 16);//十六进制
printf("%d/n",i);
return 0;
}
/*输出:
17
*/
主要用到strtol这个库函数,它的使用方法是:
函数名: strtol
功 能: 将串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);//base指明我们要转换为几进制数
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *string = "0x11", *endptr;
long lnumber;
/* strtol converts string to long integer */
lnumber = strtol(string, &endptr, 16);
printf("string = %s long = %ld/n", string, lnumber);
return 0;
}
/*输出:
string = 0x11 long = 17
*/