Проблема преобразования десятичной системы счисления в шестнадцатеричную C++
Попытка создать программу, которая преобразует десятичную дробь в шестнадцатеричную строку без использования std::hex. Когда происходит преобразование, он возвращает перевернутую версию правильного ответа для шестнадцатеричного числа
Например : 100(десятичное число) преобразуется в 46 вместо 64(правильное шестнадцатеричное число).
Я не могу придумать решение этой проблемы.
int i; int temp; string hex; long totalDecimal; cin >> totalDecimal; for (i = 0; totalDecimal != 0; i++) { temp = totalDecimal % 16; if (temp > 10) { hex += temp + 55; } else { hex += temp + 48; } totalDecimal = totalDecimal / 16; } cout << hex; return 0;
Что я уже пробовал:
создание hex-хранилища массива, например hex[100] , и использование циклов for для присвоения значений каждому элементу массива, но это только сделало его гораздо более запутанным и сложным