### Operator AND= (Conjunction and Assign)

Performs a bitwise-and (conjunction) and assigns the result to a variable

**Syntax:**

**Usage:**

`
`

*lhs*

**And=**

*rhs*

**Parameters:**

*lhs*
The variable to assign to.

*T1*
Any numeric or boolean type.

*rhs*
The value to perform a bitwise-and (conjunction) with

`.`*lhs*

*T2*
Any numeric or boolean type.

**Description:**

This operator performs a bitwise-and and assigns the result to a variable (for conversion of a boolean to an integer, false or true boolean value becomes 0 or -1 integer value). It is functionally equivalent to:

This operator can be overloaded for user-defined types as a member

`compares each bit of its operands,`**And=**`and`*lhs*`, and if both bits are 1, then the corresponding bit in the first operand,`*rhs*`, is set to 1, otherwise it is set to 0.`*lhs*`cannot be used in conditional expressions.`**And=**This operator can be overloaded for user-defined types as a member

`Operator`using the appropriate syntax.*Note: Similarly to the operator '=[>]' (assign), the alternative symbol 'And=>' can be also used.***Examples:**

' Using the AND= operator on two numeric values

Dim As UByte numeric_value1, numeric_value2

numeric_value1 = 15 '' 00001111

numeric_value2 = 30 '' 00011110

numeric_value1 And= numeric_value2

'' Result = 14 = 00001110

Print numeric_value1

Sleep

Dim As UByte numeric_value1, numeric_value2

numeric_value1 = 15 '' 00001111

numeric_value2 = 30 '' 00011110

numeric_value1 And= numeric_value2

'' Result = 14 = 00001110

Print numeric_value1

Sleep

**Dialect Differences:**

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

**Differences from QB:**

- New to FreeBASIC

**See also:**

Back to Assignment Operators

Back to Operators