Mal nur so, zur Begriffsbestimmung - auch wenns pingelig klingt.

Zitat von
Jasmin13
... einem 4-stelligen Binärwert ... einen Komma-Dezimal-Wert umrechnen ...
Hier ist ein Binärwert gezeigt (aus einer RC-5-Decodierung) der in eine dezimale Entsprechung umgerechnet wird - Zeile 3 bis 8 im folgenden Codefenster.
Code:
C501 R5M_x15 m1284p/20MHz 27Nov2012 15:28
...
11000000010100 => dez: 20 , RCges_zt = 483
11100000011001 => dez: 25 , RCges_zt = 482
11000000100011 => dez: 35 , RCges_zt = 482
11100000011011 => dez: 27 , RCges_zt = 482
11000000001010 => dez: 10 , RCges_zt = 484
11100000000110 => dez: 6 , RCges_zt = 483
Binärzahlen - auch Dualzahlen genannt - bestehen aus den Ziffern 1 und 0. Einen vierstelligen Binärwert in einen "Komma"-Wert umrechnen - also in eine Gleitkommadarstellung der Art 3,14 ist wohl nicht möglich (genauer könnt ich das ausführen, aber das ist hier sicher nicht von Bedeutung).

Zitat von
Jasmin13
Auf dem Display steht ... 1024 ... möchte diesen Wert als Dezimal-Wert umrechnen ...
Dieser Wert ist schon ein Dezimalwert - vermutlich. Natürlich könnte es auch eine Darstellung in oktal, hex oder gar auf einer total ungewöhnlichen Basis sein. Nur binär ist es mit Sicherheit nicht. Eine dezimale "1024" würde beispielsweise binär 10000000000 heissen.
Zur eigentlichen Frage "Umwandeln Binär in Dezimal" - als Darstellung auf einem Display. Dazu gibts in C den Befehl
itoa - Integer to ascii
der etwa so verwendet wird:
Code:
// Hilfsfunktion, um Zahlen über das UART auszugeben
void uputs0i( const int val )
{
char buffer[8];
uputs0 ( itoa(val, buffer, 10) );
}
Dabei ist val der aufrufende Parameter, buffer der ASCII-String, der ausgegeben werden kann und 10 die Basis zu der der Wert val umgerechnet werden soll (10 => also ne Dezimalzahl). Die binäre Zahlendarstellung im Codefenster oben wurde mit genau dieser Routine dort oben dargestellt.
Puuuhhhh. Wirds jetzt etwas verständlicher für Dich?
Lesezeichen