BCD zu ASCII wandeln?!

#3499201
Lesenswert?

Öhm,

BCD ist doch der Binärwert der Zahlen 0-9.

0 = 0000
1 = 0001
...
9 = 1001

Alles was zu tun wäre ist eine Addition einer ASCII-"0" (= 48?) und 
deines BCD-Wertes. Achte darauf sie vorher auf gleiche Typen zu bringen 
sonst
wird bei jeder deiner Additionen zuerst der Typ konvertiert und dann 
erst addiert. Das kostet CPU-Zeit und führt zu unerwünschten 
Nebeneffekten.

Oder meinst du EBCDIC?
#3499229
Lesenswert?

Detlev S. schrieb:
> Öhm,
>
> BCD ist doch der Binärwert der Zahlen 0-9.

Dann würde man es Binärwert nennen.

Wenn du aber von einer RTC die Minuten als BCD Wert in einem Byte 
bekommst, ist die Sache sonnenklar.
Das Low-Nibble enthält eine Ziffer (0-9) und das High-Nibble enthält 
eine Ziffer (0-9)

Die Aussage: wir haben BCD-Zahlen macht nur dann Sinn, wenn beide Nibble 
eine Ziffer halten können. Ansonsten hat man einfach nur Binärzahlen im 
Wertebereich von 0 bis 9
#3499302
Lesenswert?

Lothar Miller schrieb:
> Auch wenn ich hier offenbar in der Minderheit bin:
> Ich bin der Meinung, dass in 8 Bit 2 BCD-Zahlen passen... ;-)

Das nennt man dann typischerweise packed BCD

Aber ich folge dir gern dahingehend, daß die RTC ziemlich sicher packed 
BCD ausgibt und dem TE beim Formulieren seiner Frage nicht so ganz klar 
war, daß das Adjektiv packed hier wichtig ist.


XL
Moderator (Firma: Titel) Persönliche Seite #3499319
Lesenswert?

Rufus Τ. Firefly schrieb:
> Das wird dann als packed BCD bezeichnet
Ich lasse da der Einfachheit halber das packed immer weg und schließe 
mich der Meinung von Karlheinz an: wenn nur tatsächlich nur 1 BCD Zahl 
im Byte ist, dann habe ich einfach nur eine übliche Binärzahl im Bereich 
von 0..9. Erst wenn das obere Nibble auch verwendet wird und sich dessen 
Wertebereich von 0..9 bewegt, ist es eine BCD-Zahl.
Insofern gilt also "BCD = packed BCD"...

> (und dürfte das sein, was die RTC hier liefert)
Das machen die üblichen RTC, die ich so kenne...
http://electronics.stackexchange.com/questions/12606/why-do-real-time-clock-chips-use-bcd

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren