Проверка состояния бита двоичного порта lpt
У меня есть часть кода, которая проверяет входные контакты порта lpt, но использует десятичные значения:
while (PortAccess.Input(889) == 120)
Как использовать эту инструкцию с двоичными значениями?
например, пока бит 3 в 00100100 равен 0, тогда сделайте что-нибудь.
2 ответа
Решение
Итак, я сделал это, потому что решение tafa не работало, и я не мог заставить его работать:
var PortValue = Convert.ToString(PortAccess.Input(889), 2).PadLeft(8, '0');
PortV.Text = PortValue;
while (PortV.Text[3].ToString() == "1")
{
//some code
}
Это, вероятно, не очень хорошее решение, но оно работает;)
Смотрите Convert.ToInt32(строковое значение, int fromBase)
while((value & Convert.ToInt32("00000100", 2)) == 0)
Или, поскольку мы знаем, что третий бит для (2^2)
while((value & 0x0004) == 0)
это также достаточно четкий кусок кода, я думаю.