简单说一下位运算
按位与(&)
参加运算的两个数,换算为二进制(0、1)后,进行与运算。只有当相应位上的数都是1时,该位才取1,否则该为为0
按位或(|)
参加运算的两个数,换算为二进制(0、1)后,进行或运算。只要相应位上存在1,那么该位就取1,均不为1,即为0
左移(<<)
参加运算的两个数,换算为二进制(0、1)后,进行左移运算,用来将一个数各二进制位全部向左移动若干位。
开整:
定义常量
public static final int ONE = 1 << 1;
public static final int TWO = 1 << 2;
public static final int THREE = 1 << 3;
public static void main(String[] args) {
//设置类型
int type = ONE|TWO|THREE;
System.out.println(type);
//判断是否是该类型
if ((type&TWO)>0){
...
}
}
这里只提供思路,如果项目中发现场景类似可以使用尝试该方法,有新思路可以一起讨论