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