非重复数字转换(二进制)
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] } }