位或,位与

有时候我们页面上有些选项,要存到数据库中,我们可以用位或,从数据库中得到数据,用于在页面上显示,可以用位与
import java.util.ArrayList;
import java.util.List;




public class Flags {

	private static final int A=1;
	private static final int B=2;
	private static final int C=4;
	private static final int D=8;
	private int[] flags={A,B,C,D};
	
	//位或
	  public Integer set(List<Integer> lists) {
		  int status=0;
	      for (Integer flag: lists)
	      {
	    	  status |=flag;
	      }
	      return status;
	   }
	  //位与
	  public List<Integer> get(int flag)
	  {
		  List<Integer> lists=new ArrayList<Integer>();
		  if((flag & A)==A) lists.add(A);
		  if((flag & B)==B) lists.add(B);
		  if((flag & C)==C) lists.add(C);
		  if((flag & D)==D) lists.add(D);
		  return lists;
	  }
	  public static void main(String[] args) {
		  Flags flags=new Flags();
		  //lists相当于从页面上获得的列表A,B,C,D
		  List<Integer> lists=new ArrayList<Integer>();
		  lists.add(A);
		  lists.add(B);
		  lists.add(C);
		  lists.add(D);
		  
		 int i= flags.set(lists);
		 System.out.println(i);
		 //从数据库中得到15,反映在页面上
		  List<Integer> flagsList=flags.get(15);
		  for(Integer flag: flagsList)
		  {
			  System.out.println(flag);
		  }
		 
		 
	}
}

你可能感兴趣的:(C++,c,C#)