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;
}
