0
我有代码的部分,将不检查LPT端口的输入引脚,但使用十进制值:检查位状态的二进制
while (PortAccess.Input(889) == 120)
如何使用二进制值,该指令?
例如,00100100的位3是0,然后做一些事情。
我有代码的部分,将不检查LPT端口的输入引脚,但使用十进制值:检查位状态的二进制
while (PortAccess.Input(889) == 120)
如何使用二进制值,该指令?
例如,00100100的位3是0,然后做一些事情。
好了,我这样做,是因为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(string value, int fromBase)
while((value & Convert.ToInt32("00000100", 2)) == 0)
或者因为我们知道第三位是(2^2)
while((value & 0x0004) == 0)
也是一个足够清晰的一段代码,我猜。
“运算符'&'不能应用于'int'和'bool'类型的操作数:(int newPortValue = PortAccess.Input(889); if(newPortValue&0x0004 == 0) – Elfoc
对不起,问题是关于运算符优先级,我将这个问题反映到我的答案中,请注意添加了括号。 – tafa