Недавно программирую микроконтроллеры, да и вообще программирую, подскажите как можно проверить значение одного бита в переменной типа uint8_t?
Наложить маску и проверить результат. Например:
A = 0х25, бинарно выглядит так - 0010 0101, нужно проверить третий бит.
Для этого делаем операцию "И" с числом у которого в третьем бите стоит "1", в нашем случае "0х08". Если результат равен 1, то там была 1:
if (A & 0x08) // Здесь обработка если равно 1 else // Здесь обработка если равно 0
А почему именно 0x04?
Там 0x08 должно быть, я обновлю.
0x08 в двоичном виде это 0b00001000 - все биты нулевые, кроме 3-го (нумерация битов с нуля). Поэтому операция (A & 0x08) даст в результате не ноль только в том случае, если в переменной A третий бит также равен 1.
"А" неправильно написал, должно быть 0х25
Весовой код байта
8 4 2 1 8 4 2 1
0 0 1 0 0 1 0 1 = 0х25 &
0 0 0 0 0 1 0 0 = 0х04
------------------
0 0 0 0 0 1 0 0 = 0х04 -> отличается от нуля, значит бит установлен.
Нумерация битов
7 6 5 4 3 2 1 0
Мы имеем третий справа установленный бит, который имеет номер 2.
@eduard благодарю и за ответ и за терпение по отношению к новичкам )