C++ :: Aufgabe #310
1 Lösung

Zahlensysteme konvertieren
Anfänger - C++
von JKooP
- 01.11.2020 um 10:53 Uhr
Schreibe eine Methode/Funktion, mit der man jede als Datentyp „String“ angegeben Zahl eines beliebigen Zahlensystems (binär, ternär, oktal, hexadezimal…) ins Dezimalsystem konvertieren kann.
Beispiele:
("1010", 2) binär --> 10 dezimal
("120", 3) ternär --> 15 dezimal
("15", 8) oktal --> 13 dezimal
("FF", 16) hexadezimal --> 255 dezimal
Viel Spaß
Beispiele:
("1010", 2) binär --> 10 dezimal
("120", 3) ternär --> 15 dezimal
("15", 8) oktal --> 13 dezimal
("FF", 16) hexadezimal --> 255 dezimal
Viel Spaß
Lösungen:
C++ 11
C-Code

#include <iostream> #include <string> #include <vector> #include <tuple> using namespace std; int baseX_to_dec(string, int); int main() { vector<tuple<string, int>> v{ { "1010", 2 }, { "120", 3 }, { "55", 5 }, { "15", 8 }, { "100", 10 }, { "FF", 16 } }; for (const auto& i : v) cout << "(" << get<0>(i) << ", " << get<1>(i) << ") -> " << baseX_to_dec(get<0>(i), get<1>(i)) << endl; } int baseX_to_dec(string s, int b) { auto r = 0; for (const auto& i : s) { char c = tolower(i); r = b * r + c - ((c >= 'a' && c <= 'f') ? 87 : 48); } return r; }