Binärsystem ins Dezimalsystem umrechnen (Diagramm und Algorithmus)

#1
Hallo zusammen,

ich möchte mich schnell vorstellen:
Mein Name ist Sabrina :) und ich studiere neben der Arbeit Informatik, daher komme ich an solche Aufgaben.
Bevor ich starte, ja ich habe einen Beitrag genau zu diesem Thema gefunden, allerdings ist für mich die Antwort nicht so klar.

Die Aufgabe lautet:
Entwerfen Sie einen Algorithmus, der Dualzahlen in das Dezimalsystem umrechnen kann.
Grafisch und umgangssprachlich.

Bei mir ist das ganze bisher umgangssprachlich so:

1.Lies den Wert ein, der umgerechnet werden soll
2.Zähle wieviele Stellen der Wert hat
3.Merke die Anzahl der Stellen als Länge
4.Wiederhole: Erste Stelle von links mit 2 hoch Länge - 1 multiplizieren
5. Länge -1
6.neue Länge kleiner als 0?
wenn nein zu 4. ansonsten zu 9
7.Ergebnisse der Mulitplikation addieren
8. Summe der Mulitplikationsergebnisse ausgeben
9 Ende

ich habe das Gefühl das irgendwo der Wurm in meinen Gedanken feststeckt.
Vielleicht habt ihr einen Verbesserungsvorschlag oder könnt mich bestätigen?

Vielen Dank für die Mühe.

Beste Grüße
Sabrina
 

-AB-

Well-Known Member
c-b Team
c-b Experte
#2
Am besten du fängst am rechten Ende der Zahl an.

Im Dezimalsystem stehen da die "Einser", danach die "Zehner" usw. Sprich, für jede Stelle ist der Multiplikator x10 größer. Mit 1 fängt er an.
Dezimal würdest du also 105 so aufteilen: 5*1 + 0*10 + 1*100

Binär verzehnfacht sich der Wert nicht, sondern verdoppelt sich.
Du initialisierst also Ergebnis = 0, Faktor = 1, und nimmst die erste Stelle mal den Faktor, addierst das Resultat auf Ergebnis drauf (Ergebnis = Ergebnis + Faktor * Stelle).
Nächste Stelle: Faktor = Faktor * 2, du nimmst die zweite Stelle mal den Faktor, und addierst das Resultat auf Ergebnis auf.

und so weiter... :)
 
#3
Hi, danke für deine Antwort.
Habe das ganze sofort auf einem Blatt umgesetzt, war kein Problem.
Jetzt noch die Schwierigkeit das in umgangssprache mal auszudrücken, würde ich jetzt dann so machen:

1.Lies den Wert ein, der umgerechnet werden soll
2.Merke den Wert in umgekehrter Reihenfolge
3.Merke Ergebnis gleich 0
4.Merke Faktor gleich 1
5.Multipliziere Stelle mit Faktor
6.Addiere Resultat auf das Ergebnis
7.Multipliziere Faktor mit 2
8.Wenn Stelle = 0, dann gib Ergebnis aus, ansonsten wiederhole ab 5.

und wie versteht er jetzt das er die nächste Stelle benutzen soll?

Ich glaube ich sollte eine Pause machen =/ xD
 

gargyle

Well-Known Member
c-b Experte
#4
https://de.wikipedia.org/wiki/Stellenwertsystem

Zusatz:

Die Zahl 567 kann so aufgeteilt werden :

5*100 +6*10+7*1

Was das gleiche ist wie

1*10^2 + 0*10^1 + 5*10^0

wobei :
10^2=10*10=100
10^1 =10
10^0 =1

(Regeln für Potenzen)

Hirbei sieht man aber das die Wertigkeit von rechts nach links steigt und unendlich nach rechts und links fort gesetzt werden kann.
(Auf für Nachkommastellen).
 

gargyle

Well-Known Member
c-b Experte
#5
1 Lies den Wert
2 Stelle seine Länge fest.
3 setze Resultat=0, Faktor=1
4 Stelle eine Variable (i ? ) zur verfügung und setze sie auf 0
5 Ist Länge <= i ? -> Fertig -> 10
6 Resultat=Resultat*Faktor
7 Resultat=Resultat+(Wert von) Ziffer an Position aus Wert.
8 i=i+1
9 Weiter bei 5
10 ....
 
Oben