如何在c?
中将字符串0x26B70A40
转换为int
const char s[13] = "0x26B70A40";
int x = someFunction(s);
printf("%d\n", x);
应打印649529920
。
答案 0 :(得分:4)
您需要使用stdlib.h
中的strtol()
功能。
摘自手册页,
字符串可以以任意数量的空格开始(由isspace(3)确定),后跟单个可选的
'+'
或'-'
符号。 如果base为0或16,则该字符串可能包含"0x"
前缀,并且该数字将在base 16中读取; [....]
答案 1 :(得分:1)
您可以使用内置函数strtol(char * str,char * end,int base)。
int x = strtol(s,NULL,16);
答案 2 :(得分:1)
尝试使用strtol()
功能:
const char *hexstring = "0x26B70A40";
int x = (int)strtol(hexstring, NULL, 0);
答案 3 :(得分:0)
试试这个:
const char s[13] = "0x26B70A40";
char **ptr;
long val;
val = strtol(s, ptr, 16);