Operator Not (Complement)

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

Syntax
	KeyPgDeclareDeclare KeyPgOperatorOperator Not ( KeyPgByrefByRef rhs KeyPgAsAs KeyPgByteByte ) KeyPgAsAs KeyPgIntegerInteger
	KeyPgDeclareDeclare KeyPgOperatorOperator Not ( KeyPgByrefByRef rhs KeyPgAsAs KeyPgUbyteUByte ) KeyPgAsAs KeyPgIntegerInteger
	KeyPgDeclareDeclare KeyPgOperatorOperator Not ( KeyPgByrefByRef rhs KeyPgAsAs KeyPgSingleSingle ) KeyPgAsAs KeyPgIntegerInteger
	KeyPgDeclareDeclare KeyPgOperatorOperator Not ( KeyPgByrefByRef rhs KeyPgAsAs KeyPgDoubleDouble ) KeyPgAsAs KeyPgIntegerInteger

	KeyPgDeclareDeclare KeyPgOperatorOperator Not ( KeyPgByrefByRef rhs KeyPgAsAs T ) KeyPgAs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 BitResult
		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 CompilerOptlang-lang qb dialect, this operator cannot be overloaded.

Differences from QB
	* None

See also
	* TblTruthOperator Truth Tables

