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