什么时候使用数组呢?如果数据出现了对应关系,而且对应关系的一方时有序的数字编号,并作为角标使用。这时就必须想到数组的使用。就可以将这些数据存储到数组中,根据运算结果作为角标去查找数组中对应的元素即可。
package com.monfolld;
public class ArrayTest {
public static void main(String[] args){
toHex(60);
}
public static void toHex(int num){
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
};
for (int x=0;x<8;x++){
int temp=num & 15; //将输入的数值转化为数组的角标
System.out.println(chs[temp]);
num=num>>>4;
}
}
}
但是,这段代码的输出并不是很理想,运行的结果不直观,以下为改进
package com.monfolld;
public class ArrayTest {
public static void main(String[] args){
toHex(60);
}
public static void toHex(int num){
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr=new char[8]; //查表时查到比较的数据,数据一朵,就先存储起来,再进行操作,所以定义一个数组,临时容器
int pos=arr.length;
while (num!=0){ //传入的值经过循环不为零的判断
int temp=num &15;
arr[--pos]=chs[temp]; //将数据倒着存入arr表中
num=num>>>4;
}
System.out.println("pos="+pos); //pos为最后一个存储的角标
for (int x=pos;x<arr.length;x++){ //将arr表中的存在元素正向输出
System.out.println(arr[x]+",");
}
}
}