Returns the bitwise-and (conjunction) of two numeric values
Syntax
Usage
result = lhs And rhs
Parameters
lhs
The left-hand side expression.
T1
Any numeric type.
rhs
The right-hand side expression.
T2
Any numeric type.
Ret
A numeric type (varies with T1 and T2).
Return Value
Returns the bitwise-and (conjunction) of the two operands.
Description
This operator returns the bitwise-and of its operands, a logical operation that results in a value with bits set depending on the bits of the operands.
The truth table below demonstrates all combinations of a boolean-and operation:
Lhs Bit | Rhs Bit | Result |
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
No short-circuiting is performed - both expressions are always evaluated.
The return type depends on the types of values passed.
Byte,
UByte and floating-point type values are first converted to
Integer. If the left and right-hand side types differ only in signedness, then the return type is the same as the left-hand side type (
T1), otherwise, the larger of the two types is returned.
This operator can be overloaded for user-defined types.
Example
' Using the AND operator on two numeric values
Dim As UByte numeric_value1, numeric_value2
numeric_value1 = 15 '00001111
numeric_value2 = 30 '00011110
'Result = 14 = 00001110
Print numeric_value1 And numeric_value2
Sleep
' Using the AND operator on two conditional expressions
Dim As UByte numeric_value1, numeric_value2
numeric_value1 = 15
numeric_value2 = 25
If numeric_value1 > 10 And numeric_value1 < 20 Then Print "Numeric_Value1 is between 10 and 20"
If numeric_value2 > 10 And numeric_value2 < 20 Then Print "Numeric_Value2 is between 10 and 20"
Sleep
' This will output "Numeric_Value1 is between 10 and 20" because
' both conditions of the IF statement is true
' It will not output the result of the second IF statement because the first
' condition is true and the second is false.
Dialect Differences
- In the -lang qb dialect, this operator cannot be overloaded.
Differences from QB
See also