Вы действительно хотите получить 3-й бит (начиная с правый конец ):
00001100
^
3d from the right end (bits are zero based)
Все, что вам нужно сделать, это избавиться от 3
младших битов (100
) с помощью >>
и проверьте следующий бит:
// 1 if 3d bit is set, 0 otherwise
player = (low >> 3) & 1;
Или, если у вас есть номер 5
- индекс с левого конца и предполагая, что low
является byte
:
player = (low >> (sizeof(byte) * 8 - 5)) & 1;