尤圣回 发表于 2012-9-24 22:12
定义好数组,里面存放你要的值 然后利用角标查 这个真的不想讲 百度百度就有了 ... - class Problem2
- {
- public static void main(String[] args)
- {
- //查表法,如将十进制数据转换为用16进制或者2进制形式表示,这时候使用查表法比较方便
- toHex(60);
- toBin(-6);
-
- //其它的如:星期的七天,0-6对应星期天到星期六
- //0-11对应一月到十二月。这都可以以使用查表法,当然其他的还有很对。
- }
- public static void toBin(int num)
- {
- //定义二进制的表。
- char[] chs = {'0','1'};
- //定义一个临时存储容器。当然使用SringBuilder
- char[] arr = new char[32];
- //定义一个操作数组的指针
- int pos = arr.length;
- while(num!=0)
- {
- int temp = num & 1;
- arr[--pos] = chs[temp];
- num = num >>> 1;
- }
- for(int x=pos; x<arr.length; x++)
- {
- System.out.print(arr[x]);
- }
- }
- /*
- 0 1 2 3 4 5 6 7 8 9 A B C D E F ==十六进制中的元素。
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 查表法:将所有的元素临时存储起来。建立对应关系。
- 每一次&15后的值作为索引去查建立好的表。就可以找对应的元素。
- 这样比 -10+'a'简单的多。
- */
- 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];
- num = num >>> 4;
- }
-
- //存储数据的arr数组遍历。
- for(int x=pos;x<arr.length; x++)
- {
- System.out.print(arr[x]+",");
- }
- }
- }
复制代码 |