开发者

How do I convert a string representation of a hex to its hex value in c?

If开发者_C百科 I have

char input[50] = "xFFFF";
int a;

How can I store the numerical value of input in a? the language is C.


One way to do it might be:

if (sscanf(input, "x%x", &a) == 0) {
    /* matching failed */
}

If your input uses a real hex specifier (like "0xFFFF") you can just use %i:

if (sscanf(input, "%i", &a) == 0) {
    /* matching failed */
}


You can use strtol function

char *ptr;
long a = strtol( input, &ptr, 16 );


One way:

#include <stdlib.h>

int main()
{
   char *p="xFFFF";
   long lng=strtol(&p[1], (char **)0, 16);
   printf("%ld\n", lng);
   return 0;
}


See C++ convert hex string to signed integer and if you're in a pure C environment, make sure to scroll down.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜