Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Wo liegt mein Denkfehler ...

  Alt 13. Aug 2020, 15:26
Es gibt die Konstanten TRUE und FALSE, aber es gibt auch die logischen Auswertungen TRUE und FALSE.

False ist 0
und True ist alles Andere.

Boolean hat 256 Werte (Byte) und LongBool sogar 4 Milliarden (Integer), aber jeweils nur Einer ist FALSE.

Im Delphi ist die True-Konstante = 1 ($01),
aber in WinAPI/C++ ist die Konstante meistent -1 ($FFFFFFFF bzw $FF)

Delphi-Quellcode:
B := True;
if B then OK;
if not B then NEE;
if B = True then OK;
if B = False then NEE;

B := Boolean(2); // Boolean kommt aus einer Funktion und wurde z.B. "berechnet"
if B then OK;
if not B then NEE;
if B = True then OK; // Falsch: if Byte(B) = Byte(True) then ... if 2 = 1 then
if B = False then NEE;
Ist im Prinzip das Gleiche, wie man auch Fließkommazahlen niemals auf Gleichheit prüft.
$2B or not $2B

Geändert von himitsu (13. Aug 2020 um 15:38 Uhr)
  Mit Zitat antworten Zitat