Step 7 Bit- und Byte-Reihenfolge

SebastianR

Level-2
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich glaube zwar, daß meine Frage etwas dumm ist, aber ich versteh es einfach nicht.
Ich habe mir folgende Variable angelegt:
2015-12-02_09-15-00.png


Diese Variable beschreibe ich nun mit 0x0001
2015-12-02_09-16-57.png

Warum ist die '1' nicht auf b17, wo ich sie vermutet hatte?

Kann mir das vielleicht jemand erklären?

Danke und Grüße,
Sebastian

CPU 317, Step7 classic
 
Sie steht da, wo sie hingehört - im niedrigsten Bit des höherwertigsten Bytes - warum sollte sie nach deiner Meinung im höchstwertigen Bit desselben Bytes stehen ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Diese Variable beschreibe ich nun mit 0x0001
Anhang anzeigen 30851

Warum ist die '1' nicht auf b17, wo ich sie vermutet hatte?
Erstens zeigt dein Screenshot das deine Variable mit Namen b10 gesetzt ist (nicht b17).
Das wäre eigentlich Bit 8, keine Ahnung warum du 6, 7, ..., 10, zählst. Weißt wohl nur du.

Das Bit 8 gesetzt wird ist korrekt da in der Motorola-Notation (oder Big Endian) das niederwertige Byte die höhere Adresse belegt.
Bit 8 = 1
Bit 9 = 2
...
Bit 0 = 256
Bit 1 = 512

Das Gegenstück dazu ist die Intel-Notation (Little Endian)
Google einfach mal die Begriffe, da gibt's jede Menge Info
 
Ich dachte so:
0x0001 = 0b0000.0000.0000.0001
wenn ich jetzt die Struct mit den einzelnen Bits darüber lege, hatte ich gedacht die '1' ist im letzten angelegtem Bit der Struct, also b17.
 
Ich dachte so:
0x0001 = 0b0000.0000.0000.0001
wenn ich jetzt die Struct mit den einzelnen Bits darüber lege, hatte ich gedacht die '1' ist im letzten angelegtem Bit der Struct, also b17.

Ups. Korrektur.

Du zählst die Bitnummern in die verkehrte Richtung.
Wenn es Little Endian wäre wäre bei Zahl 1 das Bit 0 gesetzt. Bit 0 ist ganz rechts.
Da es aber Big Endian ist (S7), wäre bei Zahl 1 das Bit 8 gesetzt. Bit 8, von rechts bei Null beginnend weggezählt.

Zählrichtung:
b15, b14, ...., b8, ---- b7, ...., b1, b0
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich dachte so:
0x0001 = 0b0000.0000.0000.0001
wenn ich jetzt die Struct mit den einzelnen Bits darüber lege, hatte ich gedacht die '1' ist im letzten angelegtem Bit der Struct, also b17.

Es geht aber darum, wie die Werte in den Speicher geschrieben werden - nicht wie sie dargestellt werden.
 
Zurück
Oben