java中使用二进制进行一个整形字段来表示多个整形,如数据库中一个字段存放多个整形经过二进制计算得到的一个整形

1.多个整形计算得到一个整形

public static int get(int[] lngValue) {
    int p = 0;
    for (int lng : lngValue){
        if (lng < 1) {
           continue;
         }
     }
      p += (int)Math.pow(2, lng-1);
  }
  return p;
}

2.相应一个整形计算得到多个整形(复原)

public static int[] get (long lngValue) {
   int[] p = null;
   for (int flagNum =1, i = 0; flagNum <= lngValue; flagnum *= 2, i++) {
        if ((lngValue & flagNum) > 0) {
            p[i] = (int)Math.round(Math.log(flagNum)/Math.log(2)));
         }
    }
    return p;
}

你可能感兴趣的:(java,算法,开发语言)