bit manipulation notes