Как проверить, установлен ли конкретный бит в C #

В C # у меня есть 32-битное значение, которое я сохраняю в int. Мне нужно посмотреть, установлен ли конкретный бит. Мне нужен бит 0x00010000 .

Я придумал следующее решение:

Вот что я ищу:

Hex:       0    0    0    1     0    0    0    0    0 
Binary   0000|0000|0000|0001|0000|0000|0000|0000|0000

Итак, я сдвигаю бит вправо на 16, что дает мне:

Hex:       0    0    0    0     0    0    0    0    1
Binary   0000|0000|0000|0000|0000|0000|0000|0000|0001

Затем я сдвигаю бит влево на 3, что дает мне :

Hex:       0    0    0    0     0    0    0    0   8 
Binary   0000|0000|0000|0000|0000|0000|0000|0000|1000

Затем я преобразую свое 32-битное значение в байт и смотрю, равно ли оно 8.

Мой код будет примерно таким:

int value = 0x102F1032;
value = value >> 16;
byte bits = (byte)value << 3;
bits == 8 ? true : false;

Есть ли более простой способ проверить, установлен ли конкретный бит? без всякого переключения?

11
задан rustyMagnet 10 August 2017 в 00:25
поделиться