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