> ## Documentation Index
> Fetch the complete documentation index at: https://docs.syntblaze.com/llms.txt
> Use this file to discover all available pages before exploring further.

# C++ Bitwise AND Assignment

The `&=` operator is the bitwise AND assignment operator in C++. It performs a bitwise AND operation between the left-hand operand (`lhs`) and the right-hand operand (`rhs`), and assigns the resulting value directly to the left-hand operand.

```cpp theme={"dark"}
lhs &= rhs;
```

Semantically, this operation is equivalent to `lhs = lhs & rhs`, with the strict guarantee that the `lhs` expression is evaluated exactly once. This single-evaluation rule is critical when `lhs` contains side effects, such as an inline increment or a function call (e.g., `arr[i++] &= 0x0F`).

## Type Requirements

For the built-in operator, both operands must be of integral or unscoped enumeration types. If the operands are of different types, standard integer promotions and usual arithmetic conversions are applied to align their types before the bitwise operation occurs. The operator can also be overloaded for user-defined types by defining `operator&=`.

## Bit-Level Mechanics

The operation compares the operands bit by bit based on their binary representations. A bit in the resulting value is set to `1` if and only if the corresponding bits in *both* the `lhs` and `rhs` are `1`. If either bit is `0`, the resulting bit is `0`.

```cpp theme={"dark"}
#include <cstdint>

uint8_t a = 14; // Binary: 0000 1110
uint8_t b = 11; // Binary: 0000 1011

a &= b;         // Binary: 0000 1010 (Decimal: 10)
```

## Return Value

The built-in `&=` operator modifies the `lhs` in place and returns an lvalue reference to the modified `lhs`. Because it returns an lvalue reference, the operator supports chaining, which evaluates right-to-left.

```cpp theme={"dark"}
int x = 15; // 1111
int y = 7;  // 0111
int z = 3;  // 0011

x &= y &= z; 
// 1. y &= z evaluates first. 'y' becomes 3 (0011). Returns reference to 'y'.
// 2. x &= y evaluates next. 'x' becomes 3 (0011). Returns reference to 'x'.
```

<div
  style={{ 
display: "flex", 
justifyContent: "space-between", 
alignItems: "center", 
maxWidth: "754px", 
padding: "1rem 0",
marginBottom: "24px"
}}
>
  <span style={{ fontWeight: "bold", fontSize: "1.25rem", color: "var(--tw-prose-headings)", fontFamily: "Inter, ui-sans-serif, system-ui, sans-serif" }}>Tired of Poor C++ Skills? Fix That With Deep Grasping!</span>

  <a
    href="https://syntblaze.com"
    target="_blank"
    style={{ 
  marginLeft: "24px",
  textDecoration: "none", 
  backgroundColor: "#007AFF",
  color: "#ffffff", 
  padding: "6px 16px", 
  borderRadius: "16px",
  fontSize: "0.9rem",
  fontWeight: "600",
  textAlign: "center",
  transition: "background-color 0.2s ease"
}}
  >
    Learn More
  </a>
</div>

<div style={{ display: "flex", gap: "12px", flexWrap: "wrap" }}>
  <img src="https://mintcdn.com/syntblazellc/-L0ums_2lctDSZ1l/images/skill-tracking.png?fit=max&auto=format&n=-L0ums_2lctDSZ1l&q=85&s=b9b0305c93bb501c9e767b5c76c88835" style={{ width: "30%", minWidth: 60 }} width="621" height="1344" data-path="images/skill-tracking.png" />

  <img src="https://mintcdn.com/syntblazellc/23tyuOzaWS88qFlc/images/nuggets.png?fit=max&auto=format&n=23tyuOzaWS88qFlc&q=85&s=c86c80197299762989e9b882419b2109" style={{ width: "30%", minWidth: 60 }} width="621" height="1344" data-path="images/nuggets.png" />

  <img src="https://mintcdn.com/syntblazellc/-L0ums_2lctDSZ1l/images/bite-sized-exercises.png?fit=max&auto=format&n=-L0ums_2lctDSZ1l&q=85&s=a65f9a38c37ff28ab73ed783c53c60e3" style={{ width: "30%", minWidth: 60 }} width="621" height="1344" data-path="images/bite-sized-exercises.png" />
</div>

<div style={{ display: "flex", gap: "12px", flexWrap: "wrap", marginTop: "12px" }}>
  <img src="https://mintcdn.com/syntblazellc/-L0ums_2lctDSZ1l/images/mastery-chain.png?fit=max&auto=format&n=-L0ums_2lctDSZ1l&q=85&s=748a1763454713e679260fbb95f154a2" style={{ width: "30%", minWidth: 60 }} width="621" height="1344" data-path="images/mastery-chain.png" />

  <img src="https://mintcdn.com/syntblazellc/-L0ums_2lctDSZ1l/images/element-previews.png?fit=max&auto=format&n=-L0ums_2lctDSZ1l&q=85&s=242f61448ff5dd6deaaab2dccc13b507" style={{ width: "30%", minWidth: 60 }} width="621" height="1344" data-path="images/element-previews.png" />

  <img src="https://mintcdn.com/syntblazellc/-L0ums_2lctDSZ1l/images/element-explanations.png?fit=max&auto=format&n=-L0ums_2lctDSZ1l&q=85&s=cf0fc1c31f9cd0fc26716781be05fbc9" style={{ width: "30%", minWidth: 60 }} width="621" height="1344" data-path="images/element-explanations.png" />
</div>
