C :: Aufgabe #300
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-Code
#include <stdio.h> #include <ctype.h> #include <string.h> int baseX_to_dec(char*, int); void main() { char str[] = "FF"; int base = 16; printf("%d", baseX_to_dec(str, base)); } int baseX_to_dec(char* s, int b) { int r = 0; for (unsigned int i = 0; i < strlen(s); i++) { char c = tolower(s[i]); r = b * r + c - ((c >= 97 && c <= 103) ? 87 : 48); } return r; }