怎样将Int 数值转换成二进制数值后填入数组,比如说 将 23 转换成 {1,2,4,16}
------解决方案--------------------
int a=23;
int result[31]={0};
int test=1;
int pos=0;
for(int i=0;i<=30;i++)
{
if((a&test)!=0)
{
result[pos]=test;
pos++;
}
test=test<<1;
}
------解决方案--------------------
public static void main(String[] args) {
int number = 1025;
int degree = 0;//二进制中值为1的个数
for(int i=0;i<32;i++){
if(((1<<i)&number)!=0){
degree++;
}
}
int[] array = new int[degree];
int index = 0;
for(int i=0;i<32;i++){
if(((1<<i)&number)!=0){
array[index++]=(1<<i);
}
}
System.out.println(degree);
System.out.println(Arrays.toString(array));
}