C :: Aufgabe #300

1 Lösung Lösung öffentlich

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ß

Lösungen:

vote_ok
von JKooP (18090 Punkte) - 06.01.2021 um 16:20 Uhr
Quellcode ausblenden 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;
}

1801206

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.