Я пытаюсь преобразовать десятичное число в шестнадцатеричное в C, но код, похоже, не работает, я думаю, проблема в том, как я печатаю массив.
Я пытался изменить имена переменных, но не уверен насчет текущей проблемы.
int decNum = 0;
int remainderDecHex = 0;
int decHexQuotient[LENGTH_OF_STRING];
char hexDecNum[LENGTH_OF_STRING];
int sum = 0;
int printNum = 0;
int index = 0;
while (userInputArray[index] != '\0' ) {
decHexQuotient[index] = userInputArray[index];
index ++;
while ( decHexQuotient[index] != 0) {
sum = sum + (decHexQuotient[index] %16);
// Convert integers into characters
if (sum < 10) {
sum = sum + 48;
} else {
sum = sum + 55;
}
decHexQuotient[index] = decHexQuotient[index] + (decHexQuotient[index]/16);
index ++;
}
printf("The hexadecimal Number is: ");
for (printNum = printNum -1; printNum > 0; printNum --) {
printf("%c",hexDecNum[printNum] );
}
Я бы ожидал, что он напечатает шестнадцатеричное число, но ничего не печатает, userInputArray
- это то, что я использую для сбора информации, это массив символов. Вверху перечислены все переменные, и логика этого кода заключается в том, что я принимаю пользовательский ввод в виде строки и преобразовываю его в целое число, а затем проверяю, не превышает ли оно 10, чтобы добавить 48 в код ASCII. и то же самое в операторе else, чтобы изменить его на af для шестнадцатеричного. Кажется, главная проблема заключается в том, что он не печатает так, как я печатал массив.
Это потому, что я неправильно печатаю массив или код не работает?