В 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;
Есть ли более простой способ проверить, установлен ли определенный бит без всего смещения?