黑马程序员技术交流社区

标题: 数组--查表法(将十进制转成二进制) [打印本页]

作者: 张海涛    时间: 2012-12-9 15:23
标题: 数组--查表法(将十进制转成二进制)
本帖最后由 张海涛 于 2012-12-9 15:57 编辑

哪位大虾帮我具体分析下这代码啥意思,我想的有点晕乎乎的……
  1. public static void toBin_3(int num)
  2.         {
  3.                 char[] chs = {'0','1'};
  4.                 char[] arr = new char[32];
  5.                 int pos = arr.length;
  6.                 while (num!=0)
  7.                 {
  8.                         int temp = num & 1;
  9.                         arr[--pos] = chs[temp];
  10.                         num = num >>> 1;
  11.                 }
  12.                 for (int x=0;x<arr.length ;x++ )
  13.                 {
  14.                         System.out.print(arr[x]);
  15.                 }
  16.         }
复制代码

作者: 但汉涛    时间: 2012-12-9 15:40
  1. public static void toBin_3(int num)
  2.         {
  3.                 char[] chs = {'0','1'};   //二进制只有0,1,放入数组chs
  4.                 char[] arr = new char[32];  //在堆内存中,创建32位长的数组
  5.                 int pos = arr.length;    //数组长度
  6.                 while (num!=0)    //其实num在内存中就是二进制存储的
  7.                 {
  8.                         int temp = num & 1;     
  9.                         arr[--pos] = chs[temp];
  10.                         num = num >>> 1;
  11.                 }
  12.                 for (int x=0;x<arr.length ;x++ )     //遍历输出
  13.                 {
  14.                         System.out.print(arr[x]);
  15.                 }
  16.         }
复制代码
其实真的没有什么要说的,num本来就是在二进制存储到内存中的。
要做的是,和一与,就是取出最后一位,查表char[] chs = {'0','1'};,判断取出的是什么,当成字符'0'或‘1’存入数组arr
作者: 张海涛    时间: 2012-12-9 15:49
{:soso_e183:}
就是& 与的时候有点模糊,然后就是arr[--pos] 这里的--pos可以直接运算后作为数组的参数,差点没接受过来!
本人目前还是鸟哥,继续学习,谢谢了!
作者: 刘丰伟    时间: 2012-12-9 17:32
这个是java基础中数组应用中的进制转换,其实分析一下就是我们要做什么在看代码就容易多了。1.将每一位取出转换成二进制(右移,取出个位,判断是否这个数字是否为零,然后继续操作);2.将转换成的二进制存在一个32位的数组里面;3.将存储在数据倒着输出出来(往数组里存的时候是从个位开始的)。
作者: 张海涛    时间: 2012-12-9 17:39
liu584129914 发表于 2012-12-9 17:32
这个是java基础中数组应用中的进制转换,其实分析一下就是我们要做什么在看代码就容易多了。1.将每一位取出 ...

嗯,学习了……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2