mb_
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 3
-> Hier kostenlos registrieren
versuche verzweifelt in STEP 7 irgendwie eine 32 Bit unsigned integer Berechnung hinzubekommen.
Hintergrund: habe einen fortlaufenden Zähler UInt32 (über Bus). Er läuft leider wirklich bis Max UInt32 (und dann über). Aufgabe ist aus zwei Werten die Differenz berechnen, -> Position/Weg. Gibt es dafür irgendeinen Trick?
Dafür braucht es keinen Trick.
-D rechnet mit dem Zweierkomplement. Das ist bitweise identisch mit einer unsigned int 32Bit Subtraktion.
Code:
L DW#16#FFFFFFFF
[FONT=Courier]L DW#16#FFFFFF00[/FONT]
[FONT=Courier]-D
ergibt [FONT=Courier]DW#16#FF (unsigned 255, signed 255)[/FONT]
[/FONT]
Code:
[FONT=Courier] [FONT=Courier]L DW#16#FFFFFF00[/FONT][/FONT]
L DW#16#FFFFFFFF
[FONT=Courier]-D
ergibt [FONT=Courier]DW#16#FFFFFF01 (unsigned 4294967041, signed -255)[/FONT]
[/FONT]
Jetzt kommt es nur darauf an, ob du das Ergebnis als signed oder unsigned interpretierst.