n
100010101011101010 (example)
n >> 5
000001000101010111 (all bits are moved over 5 spots, therefore
& the bit you want is at the end)
000000000000000001 (0 means it will always be 0,
= 1 means that it will keep the old value)
1
Ответ 2
return (n >> k) & 1;
Здесь n >> k сдвигает k -th бит в наименее значимое положение, а & 1 маскирует все остальное.
Ответ 3
Если младшим значащим битом является число бит 0:
return (n>>k)&1;
Ответ 4
или используйте:
boolean getBit(int n, int k) {
return (((n >> k) & 1) == 1 ? true:false);
}
если вы хотите иметь значение boolean
Ответ 5
Вы также можете использовать для этого свойство модуля. Если ваш номер даже младший значащий бит равен нулю, в противном случае (нечетный) - один.