# Speaking of bitwise operators, what does "0xf00f" mean?

Numbers starting with `0x`

are in hexadecimal (base 16) notation . They use numbers `0-9`

for hex digits `0-9`

and letters `A-F`

for hex digits `10`

through `15`

.

Hexadecimal notation is more convenient than decimal notation for displaying bitwise operations, since the base is 16 `2^4`

, so a digit corresponds to four bits; the results of bitwise operations are limited to one digit; they do not "expire" into adjacent numbers.

The conversion table from binary to hex is as follows:

```
0000 - 0
0001 - 1
0010 - 2
0011 - 3
0100 - 4
0101 - 5
0110 - 6
0111 - 7
1000 - 8
1001 - 9
1010 - A
1011 - B
1100 - C
1101 - D
1110 - E
1111 - F
```

You can convert a hexadecimal number to binary by directly substituting digits using this table. For example, `0xF0F0`

it becomes `1111000011110000`

in binary.

With these substitution rules, you can follow the text from the documentation in binary:

0xff00 and 0xf0f0: 0xf000

becomes

```
1111 1111 0000 0000
& 1111 0000 1111 0000
---------------------
1111 0000 0000 0000
```

In binary it makes sense: the result of a bitwise `&`

is equal `1`

only if both operands have `1`

a corresponding bit in it; otherwise, the result is `0`

.

You will also be able to perform other operations `^`

and `|`

.

source to share