drfunfrock
Level-1
- Beiträge
- 934
- Reaktionspunkte
- 72
-> Hier kostenlos registrieren
Ich wollte die Zykluszeit berechnen und dazu mit ich TIME()-timestamp_letzter_zyklus berechnen. Nun sind das quasi 2 unsigned 32bit Werte. Ich könnte die auf LWORD erweitern um den Überlauf abzufangen, daher TIME()<timestamp_letzter_zyklus. Dann wäre das leicht, aber das will ich aus verschiedenen Gründen nicht.
Bei einem Überlauf bekomme ich eine Differenz, die eigentlich negativ wäre, aber nun bei 2^32-differenz landet. Wie bekomme ich das hin, ohne auf einen grösseren Datentyp zu konvertieren?
Meine letzte Idee war
(2^32-1)-differenz+1
PS: Oscat benutzt TIME() ständig, um die Scan-Time zu ermitteln, behandelt aber den Überlauf nicht. Sehr seltsam.
Bei einem Überlauf bekomme ich eine Differenz, die eigentlich negativ wäre, aber nun bei 2^32-differenz landet. Wie bekomme ich das hin, ohne auf einen grösseren Datentyp zu konvertieren?
Meine letzte Idee war
(2^32-1)-differenz+1
PS: Oscat benutzt TIME() ständig, um die Scan-Time zu ermitteln, behandelt aber den Überlauf nicht. Sehr seltsam.
Zuletzt bearbeitet: