Задача на системы счисления
Задача такая: нужно написать код который может значение с любой СС перевести в любое другое СС с 2-36 на с++, объязательно нужна строка для распознавание ошибок и интерфейс что бы можно было не выходить с консоли и через некоторое время опять ввести новые парамеры, в коде выходит одна противная ошибка main.cpp:7:1: error: expected initializer before ‘int’ int main() ^~~ уже незнаю как ее еще можно пытатся исправить.
Код:
#include <iostream>
using namespace std;
char* Dec2Numb(int N, uint8_t A, uint8_t B, char* buff)
int main()
{
int idx = 0;
char digit, temp[8 * sizeof(N) + 1];
memset(temp, 0, sizeof(temp));
// преобразование
do
{
digit = N % B;
N /= B;
temp[idx++] = (digit > 9) ? digit + 55 : digit + 48;
} while (N);
// дополнение нулями до заданной длины
while (strlen(temp) < A) temp[idx++] = 0x30;
temp[idx] = 0;
strcpy(buff, strrev(temp));
return buff;
}
Ответы (1 шт):
Могу предложить, как делать перевод 2 - 36 СС. Я создавала переменную - ответ типа string, также вектор типа char, и туда клала "0" - "X". Далее, перевод осуществляется следующим образом: делите число на основание СС, в которую хотите перевести, и берете из вектора чаров элемент с номером [остаток от деления], ну и дальше просто прибавляете его к переменной - ответу. Код, к сожалению, не приведу, поскольку не найду.