【Java】bit値から特定のbitがOnかOffか判定

特定の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という判定になります。

スポンサーリンク

フォローする

スポンサーリンク