如何将字符串转换为hex?
我有一个字符串0xFF
,是否有像atoi
这样的函数读取该字符串并以uint32_t
格式保存?
你也可以用这样的function来做。
unsigned int foo(const char * s) { unsigned int result = 0; int c ; if ('0' == *s && 'x' == *(s+1)) { s+=2; while (*s) { result = result << 4; if (c=(*s-'0'),(c>=0 && c <=9)) result|=c; else if (c=(*s-'A'),(c>=0 && c <=5)) result|=(c+10); else if (c=(*s-'a'),(c>=0 && c <=5)) result|=(c+10); else break; ++s; } } return result; }
例:
printf("%08x\n",foo("0xff"));
#include #include #include int main(void) { const char *hexValue = "0xFF"; char *p; uint32_t uv=0; uv=strtoul(hexValue, &p, 16); printf("%u\n", uv); return 0; }
const char *str = "0xFF"; uint32_t value; if (1 == sscanf(str, "0x%"SCNx32, &value)) { // value now contains the value in the string--decimal 255, in this case. }