BCD Wert Inkrementieren

Gast #1754460
Lesenswert?
• ▲
▼
Teile die BCD-Zahl in zwei Byte , INC das LOW-Byte, prüfe ob größer 9, 
falls ja, dann setze dieses Byte=0 und erhöhe das HIGH-Byte.

Füge die beiden Bytes wieder richtig zu einem BCD-Byte zusammen.

B.
Gast #1754472
Lesenswert?
• ▲
▼
Es liegt wohl eher daran, dass du uns über vieles im Unklaren lässt.

Selbstverständlich funktioniert es mit "inc", solange die BCD-Stelle 
(Nibble) kleiner 9 ist. Über 9 muss ein Übetrrag auf die nächste Stelle 
erfolgen.
#1754476
Lesenswert?
• ▲
▼
BCD sind eben nur 4 Bits eines Bytes.

Es sein denn, Du meinst packed BCD.

Das verwendet man heutzutage eigentlich nicht mehr. Die meisten 
Programmiersprachen rechnen direkt Dual und wandeln erst bei Eingabe 
bzw. Ausgabe nach dezimal (BCD oder ASCII).

Der 8051 hatte noch eine DAA-Befehl, habe ich aber nie benötigt.
Der AVR hat aber noch das H-Flag. Damit kannst Dir das ausgestorbene 
packed BCD basteln, wenns Dir Spaß macht.


Peter

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.