It's a bitwise exclusive or
. In this case, it's used to toggle the bold property of the font style.
For a good explanation of the various bitwise operators, see here.
The way xor
works in particular is to set the resultant bit if and only if one of the input bits is set.
So, if we xor
the value 1010
with 0010
, we get:
1010
^ 0010
----
1000 (ie, we toggle that third digit).
If we then do the xor
again:
1000
^ 0010
----
1010 (ie, we toggle that third digit back to its original value).
That's why it's a handy way to toggle a specific bit.