2010-12-02 2 views
0

Если у меня естьКак преобразовать строковое представление шестнадцатеричного значения в его шестнадцатеричное значение в c?

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

Как я могу хранить численное значение входа в? Язык C. C.

+0

duplicate http://stackoverflow.com/questions/1070497/c-convert-hex-string-to-signed-integer – 2010-12-02 21:56:20

ответ

4

Один из способов сделать это может быть:

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

Если ваш вход использует реальные шестигранный спецификатор (например, "0xFFFF") вы можете просто использовать% я:

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

См. C++ convert hex string to signed integer, и если вы находитесь в чистой среде C, обязательно прокрутите вниз.

+2

Кто сказал что-нибудь о C++? – cdhowie 2010-12-02 21:51:15

+0

@cdhowie @nos Вам нужно прочитать весь пост, а не только название. – 2010-12-02 21:53:50

1

Один из способов:

#include <stdlib.h> 

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

Вы можете использовать функцию strtol

char *ptr; 
long a = strtol(input, &ptr, 16); 
Смежные вопросы