Operator Not (Complement)

Returns the bitwise-not (complement) of a numeric value

Syntax
   Declare Operator Not ( ByRef rhs As Byte ) As Integer
   Declare Operator Not ( ByRef rhs As UByte ) As Integer
   Declare Operator Not ( ByRef rhs As Single ) As Integer
   Declare Operator Not ( ByRef rhs As Double ) As Integer

   Declare Operator Not ( ByRef rhs As T ) As T

Usage
   result = Not rhs

Parameters
   rhs
      The right-hand side expression.
   T
      Any numeric or boolean type.

Return Value
   Returns the bitwise-complement of its operand.

Description
   This operator returns the bitwise-complement of its operand, a logical 
   operation that results in a value with bits set depending on the bits of 
   the operand.
   (for a boolean type, 'Not false' returns 'true' and 'Not true' returns 
   'false')

   The truth table below demonstrates all combinations of a 
   boolean-complement operation:

      +-------+------+
      |Rhs Bit|Result|
      |0      |1     |
      |1      |0     |
      +-------+------+

   This operator can be overloaded for user-defined types.

Example
   ' Using the NOT operator on a numeric value

   Dim numeric_value As Byte
   numeric_value = 15 '00001111

   'Result = -16 =     11110000
   Print Not numeric_value

   ' Using the NOT operator on conditional expressions
   Dim As UByte numeric_value1, numeric_value2
   numeric_value1 = 15
   numeric_value2 = 25

   If Not numeric_value1 = 10 Then Print "Numeric_Value1 is not equal to 10"
   If Not numeric_value2 = 25 Then Print "Numeric_Value2 is not equal to 25"

   ' This will output "Numeric_Value1 is not equal to 10" because
   ' the first IF statement is false.
   ' It will not output the result of the second IF statement because the
   ' condition is true. 

Dialect Differences
   * In the -lang qb dialect, this operator cannot be overloaded.

Differences from QB
   * None

See also
   * Operator Truth Tables

