True Booleans can only have 2 values, which is the equivalent of a single bit. VB native numeric type is a Long. Storing signed Integers as "1's complement form" results in -1 being stored as &HFFFF. In other words, all 32 bits are set to 1. Zero is stored as &H0, so all bits are set to zero.
The Not function (at processor level) results in an inversion of a bit pattern, so Not 0 will return -1. Once False is assigned a zero value, True becomes -1.
There is a processor level flag which is set when the main processor register contains zero, and a fast test is available to check the zero flag. Therefore although False will be stored as zero, and tested for as zero, True will be set as &HFFFF, but tested as any non-zero value
________________________________________________________________
If you want to get the best response to a question, please check out FAQ222-2244 first
'If we're supposed to work in Hex, why have we only got A fingers?'