A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张金 中级黑马   /  2012-9-24 22:10  /  1482 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于查表法,直接不理解啊,不知道,哪位大神能用浅显的语言解释清楚,多谢了?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

2 个回复

倒序浏览
定义好数组,里面存放你要的值 然后利用角标查 这个真的不想讲 百度百度就有了

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
尤圣回 发表于 2012-9-24 22:12
定义好数组,里面存放你要的值 然后利用角标查 这个真的不想讲 百度百度就有了 ...
  1. class Problem2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //查表法,如将十进制数据转换为用16进制或者2进制形式表示,这时候使用查表法比较方便
  6.                 toHex(60);
  7.                 toBin(-6);
  8.        
  9.                 //其它的如:星期的七天,0-6对应星期天到星期六
  10.                 //0-11对应一月到十二月。这都可以以使用查表法,当然其他的还有很对。
  11.         }
  12.         public static void toBin(int num)
  13.         {
  14.                 //定义二进制的表。
  15.                 char[] chs = {'0','1'};

  16.                 //定义一个临时存储容器。当然使用SringBuilder

  17.                 char[] arr = new char[32];

  18.                 //定义一个操作数组的指针
  19.                 int pos = arr.length;

  20.                 while(num!=0)
  21.                 {
  22.                         int temp = num & 1;
  23.                         arr[--pos] = chs[temp];
  24.                         num = num >>> 1;
  25.                 }

  26.                 for(int x=pos; x<arr.length; x++)
  27.                 {
  28.                         System.out.print(arr[x]);
  29.                 }
  30.         }


  31.         /*
  32.         0 1 2 3 4 5 6 7 8 9 A  B  C   D  E  F  ==十六进制中的元素。
  33.         0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

  34.         查表法:将所有的元素临时存储起来。建立对应关系。
  35.         每一次&15后的值作为索引去查建立好的表。就可以找对应的元素。
  36.         这样比 -10+'a'简单的多。
  37.         */

  38.         public static void toHex(int num)
  39.         {
  40.                 char[] chs = {'0','1','2','3'
  41.                                         ,'4','5','6','7'
  42.                                         ,'8','9','A','B'
  43.                                         ,'C','D','E','F'};
  44.                
  45.                 //定义一个临时容器。储存获取到的数据。
  46.                 char[] arr = new char[8];
  47.                 int pos = arr.length;

  48.                 while(num!=0)
  49.                 {
  50.                         int temp = num & 15;
  51.                         arr[--pos] = chs[temp];
  52.                         num = num >>> 4;
  53.                 }
  54.                
  55.                 //存储数据的arr数组遍历。
  56.                 for(int x=pos;x<arr.length; x++)
  57.                 {
  58.                         System.out.print(arr[x]+",");
  59.                 }
  60.         }
  61. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马