I am creating a chess program and for the board representation I am using bitboards. The bitboard for white pawns looks like this:
whitePawns=0x000000000000FF00;
Now, if I want to move the white pawn on the square D4, I would have to shift the 12th bit by either 8 or 10 places so that it can get on to the next rank. I want to shift the 12th bit without disturbing the positions of the remaining bits. How do I do that?
After shifting the whitePawns variable should look this:
whitePawns=0x0000000008F700;