1.本题借用temp来进行循环,如果用i循环的话,i会自减,会一直处于0或1的状态。
//本题借用temp来进行循环,如果用i循环的话,i会自减,会一直处于0或1的状态。
public class _2_01numberArray {
public static void main(String[] args) {
int i;
int j;
for( i=0;i<32;i++){
int temp=i;
int[] cha=new int[5];
for( j=4;j>=0;j--){
if(temp>=(int)Math.pow(2,j)){
cha[4-j]=1;
//temp=(int) (i-Math.pow(2, j));
temp=(int) (temp-Math.pow(2, j)); //第二个temp一定要是temp;切勿写成i
//如果用i循环的话,i会自减,会一直处于0或1的状态。
}else{
cha[4-j]=0;
}
}
int p;
for( p=0;p<5;p++){
System.out.print(cha[p]);
}
System.out.println();
}
}
}
2.另一种解法:
public static void main(String [] args){
for(int i= 0;i<32;i++){
getString(i);
System.out.println();
}
}
public static void getString(int n){
int [] Len = new int[5];
int c = 0;
int b = 0;
for(int i = 0 ;i<5;i++){
c=n%2;
Len[i]=c;
b=n/2;
n=b;
}
for(int i=4;i>=0;i--){
System.out.print(Len[i]);
}
}
}