Я пытаюсь преобразовать 4-значную гекса в декабрь, но безуспешно.Вот мой код.
unsigned int array[4];
printf("Type in 4-digit hexa: \n");
scanf("%x", &array);
while(getchar() != '\n');
printf("Your number in dec is %u \n", array);
Я не знаю, что с ним не так, но он просто не выдаст правильный вывод dec.Как и в случае с EEFF, он должен выдавать 61183, но программа продолжала печатать 65518.
Откуда этот номер?Что не так с моим кодом?Я использовал unsigned int в соответствии с моим мнением, что FFFF равен 65385, а диапазон для unsigned int составляет от 0 до 65535. Не должно быть проблем с диапазоном данных, и я также использовал% u с ним.
Единственное, о чем я могу подумать прямо сейчас, после того, как я выполнил некоторые поиски, это то, что эта проблема может быть связана с размером беззнакового int с int или sth.Я прочитал объяснение, но не совсем понял.
Я знаю, это может быть дублированием, но я здесь прошу более простое объяснение того, почему это не работает.Если честно, я абсолютно новичок и в этом сайте, и в программировании, поэтому, пожалуйста, будьте осторожны с кодировкой.К вашему сведению, я ничего не знаю, кроме stdio.h.