## 11.12. Bit Functions

Table 11.16. Bitwise Functions

NameDescription
`BIT_COUNT()`Return the number of bits that are set
`&`Bitwise AND
`~`Invert bits
`|`Bitwise OR
`^`Bitwise XOR
`<<`Left shift
`>>`Right shift

MySQL uses `BIGINT` (64-bit) arithmetic for bit operations, so these operators have a maximum range of 64 bits.

• Bitwise OR:

```mysql> `SELECT 29 | 15;`
-> 31
```

The result is an unsigned 64-bit integer.

• Bitwise AND:

```mysql> `SELECT 29 & 15;`
-> 13
```

The result is an unsigned 64-bit integer.

• Bitwise XOR:

```mysql> `SELECT 1 ^ 1;`
-> 0
mysql> `SELECT 1 ^ 0;`
-> 1
mysql> `SELECT 11 ^ 3;`
-> 8
```

The result is an unsigned 64-bit integer.

• Shifts a longlong (`BIGINT`) number to the left.

```mysql> `SELECT 1 << 2;`
-> 4
```

The result is an unsigned 64-bit integer. The value is truncated to 64 bits. In particular, if the shift count is greater or equal to the width of an unsigned 64-bit number, the result is zero.

• Shifts a longlong (`BIGINT`) number to the right.

```mysql> `SELECT 4 >> 2;`
-> 1
```

The result is an unsigned 64-bit integer. The value is truncated to 64 bits. In particular, if the shift count is greater or equal to the width of an unsigned 64-bit number, the result is zero.

• Invert all bits.

```mysql> `SELECT 5 & ~1;`
-> 4
```

The result is an unsigned 64-bit integer.

• Returns the number of bits that are set in the argument `N`.

```mysql> `SELECT BIT_COUNT(29), BIT_COUNT(b'101010');`
-> 4, 3
```
Copyright © 2010-2023 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout