Я пытаюсь преобразовать двоичное число в шестнадцатеричное число, сначала преобразовав двоичное число в десятичное, а затем в шестнадцатеричное.
Когда я запускаю часть, которая преобразует только десятичную в шестнадцатеричную, она работает нормально, но всякий раз, когда я пытаюсь запустить обе, она не работает?
for (returnBinary = length - 1; returnBinary > -1; returnBinary--) {
if (input[returnBinary] == '1') {
binDec = binDec + power(2, length - returnBinary - 1);
}
}
// decimal to hex
while (binDec != 0) {
remainder = binDec % 16;
if (remainder < 10) {
hexResult[returnBinary++] = 48 + remainder;
} else {
hexResult[returnBinary++] = 55 + remainder;
}
binDec = binDec / 16;
}
// print in reverse
printf("Your hexadecimal value is: 0x");
for (returnHex2 = returnHex; returnHex2 >= 0; returnHex2--) {
printf("%c", hexResult[returnHex2 - 1]);
}
Каждая часть отлично работает отдельно, но вместе она не работает.
EG: Преобразование десятичного числа 60 в шестнадцатеричное работает нормально, но при преобразовании двоичного эквивалента 60 (111100) это дает мне результат 0xC, когда он должен быть 0x3C.