Einzelnen Beitrag anzeigen

mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#7

AW: Übergabe negativer werte

  Alt 11. Mär 2018, 09:33
..."HMENU ist ein cast von Integer zu LongWord.
Warum verursacht das dann immer noch einen ERangeError"...

Mein Erklärungsversuch:
- LongWord-Werte sind rein positiv und stets vorzeichenlos
- -1 ist mathematisch offensichtlich negativ und verletzt die untere Grenze(0) eines xxxxWord
- da Pascal vor dem Cast offensichtlich nach mathematischen Regeln arbeitet, macht ist das so erklärbar
- zufällig ist ab -1 binär in 32Bit z.B. in HEX-Darstellung $FFFFFFFF
=> WordZuweisungen von "-1" funktionieren ganz ohne Cast sauber, wenn man sich für solche Fälle eine ein 2. Konstante mit $FFFFFFFF definiert und nutzt
-> $FFFFFFFF würde aber wiederum bei Integer-Zuweisungen nun den oberen Bereich verletzt, weil 4,xMrd > den max 2,xMrd
  Mit Zitat antworten Zitat