JavaのBitwise &演算子を使用しようとしていますが、誤用していると思います。以下の例を使用すると、messageAddressが7の場合、条件1と条件3の両方が満たされます。7のmessageAddressは、最初の条件ではなく3番目の条件を満たしているべきではありませんか?7のmessageAddressが最後の条件を満たすように以下のロジックを変更する方法についてのアイデアはありますか?
public static final int SLOW = 1;
public static final int SMEDIUM = 2;
public static final int SHIGH = 3;
String messageAddressHex="7";
int messageAddress = Integer.parseInt(messageAddressHex, 16);
if ((messageAddress & SLOW) == SLOW) {
//condition 1 met logic
} else if ((messageAddress & SMEDIUM) == SMEDIUM) {
//condition 2 met logic
} else if ((messageAddress & SHIGH) == SHIGH) {
//condition 3 met logic
}