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

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]  
    }  
  
} 

你可能感兴趣的:(二进制)