Проверка, если немного установлено или нет

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

bool IsBitSet(Byte b,byte nPos)
{
   return .....;
}
53
задан abatishchev 26 January 2012 в 20:35
поделиться

4 ответа

звучит немного как домашнее задание, но:

bool IsBitSet(byte b, int pos)
{
   return (b & (1 << pos)) != 0;
}

pos 0 — наименее значимый бит, pos 7 — самый.

139
ответ дан 7 November 2019 в 08:18
поделиться

Вот словесное решение.

Сдвинуть влево целое число с начальным значением 1 n раз, а затем выполнить AND с исходным байтом. Если результат не равен нулю, бит установлен, иначе нет. :)

5
ответ дан 7 November 2019 в 08:18
поделиться

что-то вроде

return ((0x1 << nPos) & b) != 0
0
ответ дан 7 November 2019 в 08:18
поделиться

Вправо сдвиньте входные данные n бит вниз и замаскируйте с 1, затем проверьте, есть ли у вас 0 или 1.

4
ответ дан 7 November 2019 в 08:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: