As the comments and answer suggest, this is a bitwise operator
. Bitwise operators treat their operands as groups of bits when they operate on them. A bitwise and
will, as I’m sure you could guess, and
two bits, so a truth table would look like:
A | B | A & B
---|---|------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
So when you and
your a
and b
, it will take the binary values of them both, 1010
and 1101
respectively, and and
each a
bit with its corresponding b
bit, so
1010 -a, or 10
&1101 -b, or 13
-----
1000 -c, or 8
11
solved What does “&” do in this example?