特定のbitがOn/Offどちらか判定する方法です。
特定のbitがON/OFFどちらであるか判定
コード
int bit1111 = 1 + 2 + 4 + 8; // 15(bitで表すと1111) int bit1011 = 1 + 2 + 8; // 11(bitで表すと1011) int checkBit = 4; System.out.println("bit1111:" + ((bit1111 & checkBit) == checkBit)); // 論理積と比較 System.out.println("bit1011:" + ((bit1011 & checkBit) == checkBit)); // 論理積と比較
実行結果
bit1111:true bit1011:false
説明
「&」は論理積となります。
System.out.println("bit1:" + ((bit1111 & checkBit) == checkBit));
「(bit1111 & checkBit)」は論理積「1111 & 0100」で結果「0100」となります。
論理積結果「0100」とチェックビット「0100」は一致するためtrueとなり、3bit目はOnという判定になります。
System.out.println("bit:" + ((bit1011 & checkBit) == checkBit));
「(bit1011 & checkBit)」は論理積「1011 & 0100」で結果「0000」となります。
論理積結果「0000」とチェックビット「0100」は一致するためfalseとなり、3bit目はOffという判定になります。