p.s. непонятно в какой момент применяется распознавание бита, если вообще применяется, раз первая булевая переменная изменяет свои значения, хотя просто должна быть 0 или 1 в зависимости какой бит проверяется.