При работе с двоичными данными нередко возникает необходимость проверить установлен ли в числе определённый бит.
Делается это достаточно просто при помощи так называемого «побитового «И».
Ниже приводится код примера проверки третьего бита в некотором числе (source).
1 2 3 |
int source = 0b000101010111; int testingBitNumber = 2; bool result = (source & (1<<testingBitNumber)); |
Переменная testingBitNumber имеет значение 2, так как нумерация битов начинается с 0. То есть третий бит будет иметь номер 2. Операция 1<<testingBitNumber генерирует число, в котором все биты, кроме того, что мы проверяем (в данном случае третьего) равны 0 (то есть сброшены). Это число ы «маска»
В свою очередь операция «побитового «И» для исходного числа и «маски» возвращает значение true, если в исходном числе соответствующий бит установлен.
Добавить комментарий