Поэтому у меня возникли проблемы с созданием рекурсивной функции для преобразования числа из оснований 2-10 в основания 2-16. Мне нужно, чтобы он возвращал строку (очевидно, из-за оснований больше 10).
вот моя функция:
main назвал бы это так:
answer = baseConversion(101, 10, 2);
У меня есть hex как постоянный символ:
const char Hex[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char * baseConverter(int number,int currbase, int base){
if(currbase != 10){
number = base10Converter(number, currbase); //converts the number to base of 10
currbase = 10;
}
if(number == 0 || base==10){
return number;
}
int r = number%base;
printf("%c", Hex[r]);
//return (number % base) + 10*baseConverter(number /base, currbase, base); // this gives the answer as an integer.
return Hex[r]+ && baseConverter(number /base, currbase, base) // I dont know what to add here to add the characters together
}
Мне нужна помощь с моим оператором возврата и рекурсивным вызовом. Нужно ли мне объявлять массив символов внутри функции, а затем добавлять к нему символы, которые я получаю из hex[r]? Если да, то как мне это сделать, потому что я не могу изменить параметры