Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#22

AW: Fehlermeldung beim Schreiben in der Registry

  Alt 2. Aug 2021, 18:12
if B then

entspricht "logisch" einem

if B <> False then
aber in Real ist Letzeres natürlich ein cmp al,$00; jz $********

In Worten:
"du bist irgendein Mensch"
gegen
"du bist genau dieser Mensch"

Delphi-Quellcode:
var B: Boolean;

B := Boolean(2);

if B then Beep; // if Ord(B) <> 0 then
if not B then {Kein}Beep; // if Ord(B) = 0 then
if B = True then {Kein}Beep;
if B = False then {Kein}Beep;
if B = Boolean(2) then Beep;
Boolean und ByteBool sind 1 Byte groß, nicht 1 Bit, also haben 1*False und 255*True, aber die Konstante "True" entspricht nur genau einem der vielen True's.
Und beim LongBool sind es sogar über 4 Milliarden "True".

Boolean: True = $01 aka +1
ByteBool: True = $FF aka -1
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Aug 2021 um 19:00 Uhr)
  Mit Zitat antworten Zitat