Umrechnung Dual / Dezimalsystem

Wen man einen Decoder Byteweise-Programmieren will und nur das Bitmuster bekannt ist (z.B. bei CV 29, Function Mapping etc.), ist eine Umrechnung vom Dual in das Dezimalsystem erforderlich.

Anzeige:
AP Modellbahn - Die Modellbahnverwaltung

Umrechnung Dual / Dezimal

Das Umrechnen vom Dual in das Dezimalsystem ist relativ einfach: Jedes Bit stellt einen Dezimalwert dar, wobei sich der Wert mit jedem Bit verdoppelt, beginnend bei 1.
Bit 0 = 1
Bit 1 = 2
Bit 2 = 4
Bit 3 = 8
Bit 4 = 16
Bit 5 = 32
Bit 6 = 64
Bit 7 = 128
Für jedes Bit, das gesetzt ist (also "1" ist), muss der jeweilige Dezimalwert gezählt werden, wobei alle gesetzten Dezimalwerte summiert werden.
Sind alle Bits "0", so entspricht dies dem Dezimalwert 0. Der maximale Dezimalwert bei 8 Bits ist 255 (entspricht der Summe aller einzelnen Teil-Dezimalwerte).

Der Dezimalwert der 8 Bits entspricht dem zu programmierenden Byte-Wert!

Rechenbeispiel für das Bitmuster 00110101:

  Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bitmuster: 0 0 1 1 0 1 0 1
Dezimalwert der Bits: 128 64 32 16 8 4 2 1
Zu summierende Dezimalwerte: 0 0 32 16 0 4 0 1
 
Dezimalwert für 00110101: 53

 

Rechner

Wer nicht rechnen will, kann hier einfach die entsprechenden Kontrollkästchen anhacken und den Dezimalwert ablesen (JavaScript-basiert). Nicht angehackte Kästchen entsprechen einer "0", angehackte einer "1".

 

Bit
7
Bit
6
Bit
5
Bit
4
Bit
3
Bit
2
Bit
1
Bit
0
Dezimal-
wert

Rechnerscript mit freundl. Genehmigung von Arnold Hübsch

Umrechnung Dezimal / Dual

Das Umrechnen vom Dezimalsystem in das Dualsystem ist etwas schwieriger, kann aber in Anlehnung an die Dual / Dezimal-Umrechnung auf logische Weise erfolgen, indem man beginnend mit dem höchstwertigsten Bit (Bit 7, Wert 128) vergleicht, ob der Wert im Dezimalwert "Platz findet". Falls ja, heißt dies, dass das Bit gesetzt ist (also "1"). Der Bitwert (128 für Bit 7) wird von der Dezimalzahl abgezogen und mit dem Restwert wird beim nächsten Bit weitergemacht. Ist der Bitwert höher als die (noch übriggebliebene) Dezimalzahl, so wird das Bit einfach übersprungen - es bedeutet, dass das Bit nicht gesetzt ist und daher "0" ist.

Rechenbeispiel für das Bitmuster 53:

Wie gehabt, die Bitwerte:
Bit 7 = 128; Bit 6 = 64; Bit 5 = 32; Bit 4 = 16; Bit 3 = 8; Bit 2 = 4; Bit 1 = 2; Bit 0 = 1

53 ist kleiner als die Bitwerte von Bit 7 und 6, diese sind daher 0.
Bit 5 passt "hinein", ist also 1. Von 53 wird nun der Bitwert von Bit 5 abgezogen: 53 - 32 = 21 - mit dieser Zahl wird nun die Berechnung fortgesetzt.
Bit 4 (Wert 16) passt, ist also 1; Wert wird wieder abgezogen: 21 - 16 = 5 - mit dieser Zahl wird nun fortgesetzt.
Bit 3 (Wert 8) passt nicht in 5, ist also 0;
Bit 2 (Wert 4) passt, ist also 1; Wert wird wieder abgezogen: 5 - 4 = 1 - weiter mit der Zahl1.
Bit 1 (Wert 2) passt nicht , ist also 0;
Bit 0 (Wert 1) passt, ist also 1. Die Endsumme ist Null (muss Null sein!).

Das sich ergebende Bitmuster: 00110101


Das sagen User zu diesem Thema (Ein Beitrag):


Von: Phips
Am: 12.04.2012 19:58

gute Anleitung, jezzet hab ichs verstanden :)

 


Zum Seitenanfang

© by 1zu160.net; Stand: 26. 12. 2021; Seitenaufrufe laufender Monat: 4325; Vormonat: 764;