Bitwise operation

if (m_running != -1 && m_running != -1)


The C++ bitwise operators and the effect of using them on a (0110) and b (0101).

Symbol   Name            C++       Result

<< Left shift a << 1 1100

>>       Right shift     a >> 1    0011
~        NOT             ~a        1001
&        AND             a & b     0100
|        OR              a | b     0111
^        XOR             a ^ b     0011

How to use them

number = number << X;         // Shift the bits left x step.
number = number >> X;         // Shift the bits right x step.
bitmask = (1 << x);           // Create a bitmask with the x bit from the right set.
bit = number & (1 << x)       // Check a bit.
number |= (1 << X);           // Set a bit.
number &= ~(1 << x);          // Clear a bit.
number ^= (1 << x);           // Toggle a bit.

Bit Twiddling - 2006