Как проверить, установлен ли определенный бит в байте?
bool IsBitSet(Byte b,byte nPos)
{
return .....;
}
звучит немного как домашнее задание, но:
bool IsBitSet(byte b, int pos)
{
return (b & (1 << pos)) != 0;
}
pos 0 — наименее значимый бит, pos 7 — самый.
Вот словесное решение.
Сдвинуть влево целое число с начальным значением 1 n раз, а затем выполнить AND с исходным байтом. Если результат не равен нулю, бит установлен, иначе нет. :)
Вправо сдвиньте входные данные n бит вниз и замаскируйте с 1, затем проверьте, есть ли у вас 0 или 1.