Скажем, у меня есть следующее
int susan = 2; //0010
int bob = 4; //0100
int karen = 8; //1000
и я передаю 10 (8 + 2) в качестве параметра методу, и я хочу его декодировать как означающий susan и karen
Я знаю, что 10 равно 1010
но как я могу сделать некоторую логику, чтобы проверить, проверен ли конкретный бит, как в
if (condition_for_karen) // How to quickly check whether effective karen bit is 1
Сейчас все, о чем я могу думать, это проверить, прошел ли номер i
14 // 1110
12 // 1100
10 // 1010
8 // 1000
Когда у меня есть большее количество реальных бит в моем реальном мире, это кажется непрактичным, что лучше использовать маску, чтобы просто проверить, соответствует ли мне условие только для karen?
Я могу думать о переносе влево, затем обратно, а затем переходить прямо назад, чтобы очистить биты, отличные от того, что меня интересует, но это также кажется слишком сложным.