У меня проблема. Я хочу преобразовать целое число (ex 64) в определенную базу (ex 4). Число будет выглядеть как 100 (я думаю). Мне нужно получить номер, представленный ранее (100). Если я использую алгоритм, который я думал о том, что я получу 001, который будет преобразован в 1. Как я могу преобразовать базовое число 10 в представление базы 4, начиная с первой цифры, которая не равна 0. Извините за мое плохое объяснение, Надеюсь, кто-то поймет.Преобразование базы 10 в определенное основание
int x=64;
int t=x; // temp variable
int pp=0;
int base=4;
while(t!=0)
{
pp = pp * 10 + t%base;
t/=base;
}
http://en.cppreference.com/w/cpp/io/manip/setbase –
Я предполагаю, что вы делаете это как упражнение, так как существуют библиотеки для базы преобразование. База - это свойство отображения числа, поэтому я не буду хранить его в 'int'. Вы можете запустить цикл, помещая символы в массив 'char', а затем отобразить массив' char' в обратном порядке. – lurker
То, что обманутый ответ на самом деле не ясно дал понять, заключается в том, что то, что вы делаете, на самом деле не имеет смысла. Числа фактически беспочвенны - если у меня есть 25 из того, что у меня всегда одинаковое число, независимо от того, что такое база. Infact ваш компьютер, вероятно, сохраняет все номера в качестве базы 2 внутри, но вы этого не видите. В чем разница: _displaying_ этот номер для пользователя (или сохранение его в файле и т. Д.). В этом случае, когда вы конвертируете его в строку, вам нужно указать базу для преобразования. Наличие переменной типа «int» в определенной базе имеет мало смысла. –