Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Umwandeln Dualzahl in Dezimalzahl (rekursiv) » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Umwandeln Dualzahl in Dezimalzahl (rekursiv)
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Chirs
Mitglied


Dabei seit: 23.12.2015
Beiträge: 26

Umwandeln Dualzahl in Dezimalzahl (rekursiv) Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo,

vielleicht kennt sich hier einer mit dieser Aufgabe aus.

"Schreiben Sie eine rekursive Funktion, die eine Dualzahl in Form einer Zeichenkette aus '1'en und '0'en in entsprechende Dezimalzahl als Funktionsergebnis umwandelt. Die Dualzahl soll als Parameter übergeben werden. Eine Fehlerabfrage muss nicht implementiert werden."

Ich habe keine Ahnung wie ich diese Aufgabe rekursiv lösen kann, da ich ja die 2^n Potenzen irgendwie rekursiv auf das Array anwenden muss.

Ich bedanke mich schon mal für eure Hilfe.


Vg,

Chris


Meine Ideen:
Lösungshinweiß: Übergeben Sie die Zahl Binärzahl als Parameter in Form einer Zeichenkette vom Typ char* oder char[].
05.01.2016 15:09 Chirs ist offline E-Mail an Chirs senden Beiträge von Chirs suchen Nehmen Sie Chirs in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Sollte passen.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
#include <stdio.h>

int convert(char* number, int sum) {
	if (*number == '\0') return sum; //sind am Ende angekommen
	int digit = *number - '0'; //aktuelle Ziffer
	return convert(number + 1, 2*sum+digit);
}

int main(void) {
	char number[] = "100101";
	printf("%d\n", convert(number, 0));
}


__________________
Syntax Highlighting fürs Board (Link)
05.01.2016 15:21 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Umwandeln Dualzahl in Dezimalzahl (rekursiv)