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]
}
}
非重复数字转换(二进制)
最新推荐文章于 2022-10-11 22:42:31 发布