非反复数字转换(二进制)

非重复数字转换(二进制)import java.util.ArrayListimport java.util.Listpublic class BinaryTest {pub

非重复数字转换(二进制)

import java.util.ArrayList;  import java.util.List;    public class BinaryTest {        public static List<Integer> binaryNum(int targetNum) {          List<Integer> list = new ArrayList<Integer>();          if (targetNum > 0){          int baseNum = 1;          int sumNum = 0;          int count = 0;          while (baseNum < 1024) {              if ((sumNum = targetNum & baseNum) != 0) {                  list.add(sumNum);                  if (targetNum == (count += sumNum)) {                      break;                  }              }              baseNum = baseNum << 1;          }          }        return list;      }            public static void main(String[] args) {           System.err.println(binaryNum(63));                  //[1, 2, 4, 8, 16, 32]      }    }