對於我編寫的用於連接具有三個輸出托盤(口袋)的掃描儀的程序,我需要使用SDK。在對SDK的調用之後,我收到一個表示口袋狀態的int值。爲了確定這個「口袋」狀態,以下文件在文件中。如何使用按位&(和)來實現這個?
獲取輸出口袋的狀態。要確定口袋是滿的還是空的,請使用按位AND(&)運算符檢查返回的值。有效值爲:
- Csd.POCKET.P1_EMPTY口袋1爲空。
- Csd.POCKET.P2_EMPTY口袋2是空的。
- Csd.POCKET.P1_FULL口袋1已滿。
- Csd.POCKET.P2_FULL口袋2已滿。
- Csd.POCKET.P3_EMPTY口袋3是空的。
- Csd.POCKET.P3_FULL口袋3已滿。
我從來沒有使用位運算符,所以我很茫然。是 上面的「口袋」結構的值如下:
public struct POCKET
{
public const int P1_EMPTY = 1;
public const int P1_FULL = 16;
public const int P2_EMPTY = 2;
public const int P2_FULL = 32;
public const int P3_EMPTY = 4;
public const int P3_FULL = 64;
}
我有位運算符讀了,我知道他們做了什麼,但我在實施它的這種特殊情況下的損失。
謝謝大家提前。
看看此http: //stackoverflow.com/questions/8447/what-does-the-flags-enum-attribute-mean-in-c – DavidG
Eg 'if(returned_value&POCKET.P2_FULL == POCKET.P2_FULL){...}'檢查口袋2是否已滿 –
另外值得一提的是你缺少8的枚舉值。 – DavidG