Trinärcodierung

OP #7491929
Lesenswert?

Hallo zusammen,

ich zerbreche mir hier aktuell den Kopf, wie man die Trinärcodierung macht. Es geht um das Märklin Motorola Format, siehe hier: https://www.digital-bahn.de/info_tech/motorola.htm

Die Adresse geht von 1-80. Auf der Seite ist nur bis 64 aufgeführt. Es geht um die Decoderadresse. Ich habe also binär 1 - 80 und brauche trinär die entsprechende Adresse. ich sehe da kein Muster und ich verstehe auch nicht wie ich das codieren muss. Die Decodierung ist einfach hingegen, das klappt. Das sind nur 3 einfache Abfragen.

Kann mir da jmd. helfen?

#7491943
Lesenswert?

Was genau ist denn unklar, ich habe unten ein Beispiel von der Seite genommen, Dekoder-Adresse 32.

Die trinären Smybole sind

1
00 -> 0
2
11 -> 1
3
10 -> 2
4
01 -> ungültig

Das Beispiel mit Dekoder-Adresse 32:

1
32:  10 11 00 11 00
2

3
32:  10          11          00          11          00
4

5
     (2 * 3^0) + (1 * 3^1) + (0 * 3^2) + (1 * 3^3) + (0 * 3^4)
6

7
      2        +  3        +  0        +  27       +  0 = 32

Edit: Wobei man "00" ganz rechts auch weg lassen kann weil das laut der Webseite immer "00" ist

OP #7491958
Lesenswert?

Dieter S. schrieb:

Was genau ist denn unklar, ich habe unten ein Beispiel von der Seite genommen, Dekoder-Adresse 32.

1
> 32:  10 11 00 11 00
2
> 
3
> 32:  10          11          00          11          00
4
> 
5
>      (2 * 3^0) + (1 * 3^1) + (0 * 3^2) + (1 * 3^3) + (0 * 3^4)
6
> 
7
>       2        +  3        +  0        +  27       +  0 = 32
8
>

Das ist doch die Decodierung, oder? Die ist mir klar. Ich brauche es genau umgekehrt. Sprich ich habe die binäre Adresse 32 und möchte die in eine trinäre Adresse wandeln. Wie komme ich von binär 32 (0b00000100) auf trinär 0b11001101 ??

#7491970
Lesenswert?

grundsätzlich ist es komplett wurscht, in welches Zahlensystem man umrechnet - das Vorgehen ist immer gleich. und wenn du anstatt der Binärdarstellung von 32 mit der Dezimaldarstellung rechnest, dann gehts leichter in den Kopf

z.B.

https://www.massmatics.de/merkzettel/#!1313:Umrechnung_dezimal_-_hexadezimal

$$32/3 = 10\\ 32\%3 = 2$$

$$10/3 = 3\\ 10\%3 = 1$$

$$3/3 = 1\\ 3\%3 = 0$$

$$1/3 = 0\\ 1\%3 = 1$$

$$1\times 3^{3} + 0\times 3^{2} + 1\times 3^{1} + 2\times 3^{0} = 27 + 0 + 3 + 2$$

1
"1" "0" "1" "2"
2
10 00 11 10
#7491973
Lesenswert?

Das funktioniert genauso wie bei anderen Zahlensystemen auch, also z.B. so bei 32:

1
32 % 3 = 2   30 / 3 = 10
2
10 % 3 = 1    9 / 3 = 3
3
3  % 3 = 0    3 / 3 = 1
4
1  % 3 = 1

Das Ergebnis der MOD-Operation ist das Symbol (niederwertigste Stelle zuerst), mit der Division wird die Zahl für den nächsten Schritt ermittelt (man kann natürlich auch "32 / 3" und "10 / 3" berechnen und die Nachkommastellen weg lassen).

OP #7491996
Lesenswert?

Dieter S. schrieb:

Das funktioniert genauso wie bei anderen Zahlensystemen auch, also z.B. so bei 32:

1
> 32 % 3 = 2   30 / 3 = 10
2
> 10 % 3 = 1    9 / 3 = 3
3
> 3  % 3 = 0    3 / 3 = 1
4
> 1  % 3 = 1
5
>

Das Ergebnis der MOD-Operation ist das Symbol (niederwertigste Stelle zuerst), mit der Division wird die Zahl für den nächsten Schritt ermittelt (man kann natürlich auch "32 / 3" und "10 / 3" berechnen und die Nachkommastellen weg lassen).

Danke, das war verständlich und klar, hätte ich auch selbst drauf kommen können aber wie das so ist, aus dem üblichen System raus und Brett vor dem Kopf. Vielen Dank!

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