最近复习java基础,学习位操作,练习使用位操作实现权限的demo
。
public class Test {
private static int ONE = 1;
private static int TWO = 1 << 1;
private static int THREE = 1 << 2;
private static int FOUR = 1 << 3;
private static int FIVE = 1 << 4;
public static void main(String[] args){
int a = 0;
a = setPower(a, ONE,FIVE,FOUR);
System.out.println(hasPower(a, ONE));
System.out.println(hasPower(a, ONE, FOUR));
System.out.println(hasPower(a, ONE, FIVE, FOUR));
System.out.println(hasPower(a, ONE, THREE, FIVE, FOUR));
System.out.println(hasOnePower(a, ONE,THREE));
System.out.println(hasOnePower(a, ONE, THREE, FIVE, FOUR));
a = deletePower(a, ONE);
System.out.println(hasPower(a, ONE));
}
/**
* 设置 权限
*/
public static int setPower(int a, int... powers){
for (int power : powers) {
a |= power;
}
return a;
}
/**
*
* 是否包含权限
*
* @param a
* @param powers
* @return
*/
public static boolean hasPower(int a, int... powers){
for (int power : powers) {
if ((~a & power) > 0){
return false;
}
}
return true;
}
/**
* 是否包含其中一个权限
*
* @param a
* @param powers
* @return
*/
public static boolean hasOnePower( int a, int... powers){
for (int power : powers) {
if ((a & power) > 0){
return true;
}
}
return false;
}
/**
* 去除其中一个权限
*
* @param a
* @param power
* @return
*/
public static int deletePower( int a, int power){
a = a & ~power;
return a;
}
}
。