Zahlen in verschiedene Systeme umrechnen

wer so komische Fragen hat wie ich manchmal: wie sieht die Dezimalzahl 17 im 6-er System aus? Oder die Zahl 321 im 20-er System??  Der kann rechnen oder was programmieren...

Chat GPT hat es leider bisher nicht auf die Reihe bekommen, mir sowas herzustellen... aber zum Glück habe ich das auf einer alten Datensicherung gefunden:



#include <iostream>

#include <string>

#include <cmath>


using namespace std;


// Funktion zur Umwandlung einer Ziffer in den entsprechenden Wert

int charToInt(char c)

{

    if (c >= '0' && c <= '9')

        return c - '0';

    else

        return c - 'A' + 10;

}


// Funktion zur Umwandlung eines Werts in die entsprechende Ziffer

char intToChar(int n)

{

    if (n >= 0 && n <= 9)

        return n + '0';

    else

        return n - 10 + 'A';

}


// Funktion zur Umwandlung einer Zahl von einem Ausgangssystem in ein Ziel-System

string convertBase(string number, int baseFrom, int baseTo)

{

    int numLen = number.length();

    int decimal = 0;


    // Umwandlung der Zahl in Dezimalform

    for (int i = 0; i < numLen; i++)

    {

        int digit = charToInt(number[i]);

        decimal += digit * pow(baseFrom, numLen - i - 1);

    }


    // Umwandlung der Dezimalzahl in das Ziel-System

    string result = "";

    while (decimal > 0)

    {

        int remainder = decimal % baseTo;

        result = intToChar(remainder) + result;

        decimal /= baseTo;

    }


    return result;

}


int main()

{

    int baseFrom, baseTo;

    string number;


    // Eingabe der Ausgangsbasis und der Zahl

    cout << "Geben Sie die Basis des Ausgangssystems ein: ";

    cin >> baseFrom;

    cout << "Geben Sie die Zahl ein: ";

    cin >> number;


    // Eingabe der Zielbasis

    cout << "Geben Sie die Basis des Ziel-Systems ein: ";

    cin >> baseTo;


    // Umwandlung und Ausgabe des Ergebnisses

    string result = convertBase(number, baseFrom, baseTo);

    cout << "Das Ergebnis ist: " << result << endl;


    return 0;

}



//man kann das online compilieren  und ausführen unter: 

//www.onlinegdb.com/online_c++_compiler