Quote from: MarkMLl on May 23, 2020, 05:38:07 pmWhat the compiler does behind closed doors is the business of nobody but the compiler and its consenting libraries.However unless Ord(Succ(false)) is defined by the language to be 1 I'd be very uneasy about any negation based on Inc() or xor: it's almost universally accepted that false is represented by zero but in some languages Ord(not false) is -1 rather than 1.For (Object) Pascal the types Boolean, Boolean8, Boolean16, Boolean32 and Boolean64 use 0 for False and 1 for True while the types ByteBool, WordBool, LongBool and QWordBool use 0 for False and "not 0" (or -1) for True.
What the compiler does behind closed doors is the business of nobody but the compiler and its consenting libraries.However unless Ord(Succ(false)) is defined by the language to be 1 I'd be very uneasy about any negation based on Inc() or xor: it's almost universally accepted that false is represented by zero but in some languages Ord(not false) is -1 rather than 1.
while the types ByteBool, WordBool, LongBool and QWordBool use 0 for False and "not 0" (or -1) for True.