读书人

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

发布时间: 2012-08-26 16:48:05 作者: rapoo

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

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

读书人网 >编程

热点推荐