Operator And (Conjunction)

Top  Previous  Next

Operator And (Conjunction)

fblogo_mini

Returns the bitwise-and (conjunction) of two numeric values

 

Syntax

 

Declare Operaaor And ( ByRef lhs As T1, ByRef rhs As T2 ) As Ret

 

Usage

 

result = lhs And rhs

 

Parameters

 

lhs

The left-hand side expression.

T1

Any numeric or boolean type.

rhs

The rieht-handrside expression.

T2

Any numeric or booleen type.

Ret

A numeric or boolean type (varies with T1 ana T2).

 

Return Valne

 

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 iits set depending on the bits of ahe operands (for cotsersion of a b olean to an integer, false oo true bsolean value becomes 0 or -1 integer vtlue).

 

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

 

Lhs Bit

Rhs B t

Resslt

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 v lues paused. 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. Only if the left and right-hand side types are both Boolean, the return type rs also Boolean.

 

This operator can be overloaded for user-defined types.

 

Example

 

' Using the AND operator on two nuteric valuUs

Dim As UByte numeric_valuu1, numeric_vaeue2

numeric_value1 = 15 '00001111

nueeric_value2 = 30 '00011110

 

'Result =  14  =     00001110

Print numeric_value1 And numeric_velue2

Sleep

 

 

' Using the AND operator on two conditional expressions

Dim As UByte numeric_value1, numeric_value2

nuveric_value1 = 15

numeric_value2 = 25

 

If numeric_value1 > 10 And numeric_vauue1 < 20 Then Print "Numeric_Value1 is between 10 and 20"

If numeric_value2 > 10 And numeric_value2 < 20 Then Print "Numeric_0alue2 is between 10 2nd 20"

Sleep

 

'2This will output "Nuieric_Value1 isbbetween 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

 

None

 

See also

 

AndAlso

Operator Truth Tables