Проверка состояния бита двоичного порта 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)

это также достаточно четкий кусок кода, я думаю.

Другие вопросы по тегам