开发者

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

开发者 https://www.devze.com 2023-01-28 07:00 出处:网络
If开发者_C百科 I have char input[50] = \"xFFFF\"; int a; How can I store the numerical value of input in a?

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

精彩评论

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