Если у меня естьКак преобразовать строковое представление шестнадцатеричного значения в его шестнадцатеричное значение в c?
char input[50] = "xFFFF";
int a;
Как я могу хранить численное значение входа в? Язык C. C.
Если у меня естьКак преобразовать строковое представление шестнадцатеричного значения в его шестнадцатеричное значение в c?
char input[50] = "xFFFF";
int a;
Как я могу хранить численное значение входа в? Язык C. C.
Один из способов сделать это может быть:
if (sscanf(input, "x%x", &a) == 0) {
/* matching failed */
}
Если ваш вход использует реальные шестигранный спецификатор (например, "0xFFFF") вы можете просто использовать% я:
if (sscanf(input, "%i", &a) == 0) {
/* matching failed */
}
См. C++ convert hex string to signed integer, и если вы находитесь в чистой среде C, обязательно прокрутите вниз.
Кто сказал что-нибудь о C++? – cdhowie 2010-12-02 21:51:15
@cdhowie @nos Вам нужно прочитать весь пост, а не только название. – 2010-12-02 21:53:50
Один из способов:
#include <stdlib.h>
int main()
{
char *p="xFFFF";
long lng=strtol(&p[1], (char **)0, 16);
printf("%ld\n", lng);
return 0;
}
Вы можете использовать функцию strtol
char *ptr;
long a = strtol(input, &ptr, 16);
duplicate http://stackoverflow.com/questions/1070497/c-convert-hex-string-to-signed-integer – 2010-12-02 21:56:20