C :: Aufgabe #171 :: Lösung #1

2 Lösungen Lösungen öffentlich
#171

Zahlen umwandeln: Binär zu Dezimal

Anfänger - C von Nachbar - 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.

Beispiel:

Binär: 11010
Dezimal: 26
#1
vote_ok
von Dreami (60 Punkte) - 21.12.2017 um 23:31 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

double binaerZuDezimal(unsigned long binaer) {
    int i = 0, anzahlStellen = snprintf(NULL, 0, "%lu", binaer);
    double dezimal = 0;
    char zahl[anzahlStellen + 1];
    snprintf(zahl, anzahlStellen, "%lu", binaer);
    while (i < strlen(zahl)) {
        int zahlGerade = (int) zahl[i] - '0';
        dezimal = dezimal + zahlGerade * pow(2, strlen(zahl) - i);
        i++;
    }
    return dezimal;
}

int main(void) {
    long unsigned binaer;
    puts("Bitte eine binäre Zahl eingeben: ");
    scanf("%22lu", &binaer);
    printf("%.0f", binaerZuDezimal(binaer));
    return (EXIT_SUCCESS);
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben