package happy;
public class ChannelFunctionTest {
public static void main(String[] args) {
System.out.println(0|(1<<1));
System.out.println("+++++++++++++++++++");
System.out.println((0|(1<<1))&(1<<1));
System.out.println((0|(1<<1))&(1<<2));
System.out.println((0|(1<<1))&(1<<3));
System.out.println((0|(1<<1))&(1<<4));
System.out.println((0|(1<<1))&(1<<5));
System.out.println("----------------------------------");
System.out.println((0|(1<<1))|(1<<2));
System.out.println("+++++++++++++++++++");
System.out.println(((0|(1<<1))|(1<<2))&(1<<1));
System.out.println(((0|(1<<1))|(1<<2))&(1<<2));
System.out.println(((0|(1<<1))|(1<<2))&(1<<3));
System.out.println(((0|(1<<1))|(1<<2))&(1<<4));
System.out.println(((0|(1<<1))|(1<<2))&(1<<5));
System.out.println("----------------------------------");
System.out.println(((0|(1<<1))|(1<<2))|(1<<3));
System.out.println("+++++++++++++++++++");
System.out.println((((0|(1<<1))|(1<<2))|(1<<3))&(1<<1));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3))&(1<<2));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3))&(1<<3));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3))&(1<<4));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3))&(1<<5));
System.out.println("----------------------------------");
System.out.println(((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5));
System.out.println("+++++++++++++++++++");
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4))&(1<<1));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4))&(1<<2));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4))&(1<<3));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4))&(1<<4));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4))&(1<<5));
System.out.println("----------------------------------");
System.out.println(((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5));
System.out.println("+++++++++++++++++++");
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5))&(1<<1));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5))&(1<<2));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5))&(1<<3));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5))&(1<<4));
System.out.println((((0|(1<<1))|(1<<2))|(1<<3)|(1<<4)|(1<<5))&(1<<5));
}
}
package com.cainiao.aeye.hsf.util;
import java.util.ArrayList;
import java.util.List;
/**
* @author wb-fem407232
* @date 2018/08/02
*/
public class SundaryUtil {
/**
* 通过传入功能枚举bitPos
* 得到functionValue(即数据库存储的value)
* @param bitPosList
* @return
*/
public static Integer getFunctionValue(List<Integer> bitPosList){
if(bitPosList==null || bitPosList.size()>0){
return null;
}
Integer functionValue=0;
for (Integer bitPos: bitPosList) {
functionValue=functionValue|(1<<bitPos);
}
return functionValue;
}
/**
* 通过传入功能枚举bitPos
* 得到拥有的功能bitPos
* @param bitPosList
* @return
*/
public static List<Integer> getHasFunctions(Integer functionValue,List<Integer> bitPosList){
if(functionValue==null ||bitPosList==null ||bitPosList.isEmpty()){
return null;
}
List<Integer> hasFunctionBitPos = new ArrayList<>();
for (Integer bitPos:bitPosList) {
if((functionValue&(1<<bitPos))!=0){
hasFunctionBitPos.add(bitPos);
}
}
return hasFunctionBitPos;
}
}