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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张海涛 中级黑马   /  2012-12-9 15:23  /  1907 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张海涛 于 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.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
  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

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
{:soso_e183:}
就是& 与的时候有点模糊,然后就是arr[--pos] 这里的--pos可以直接运算后作为数组的参数,差点没接受过来!
本人目前还是鸟哥,继续学习,谢谢了!
回复 使用道具 举报
这个是java基础中数组应用中的进制转换,其实分析一下就是我们要做什么在看代码就容易多了。1.将每一位取出转换成二进制(右移,取出个位,判断是否这个数字是否为零,然后继续操作);2.将转换成的二进制存在一个32位的数组里面;3.将存储在数据倒着输出出来(往数组里存的时候是从个位开始的)。
回复 使用道具 举报
liu584129914 发表于 2012-12-9 17:32
这个是java基础中数组应用中的进制转换,其实分析一下就是我们要做什么在看代码就容易多了。1.将每一位取出 ...

嗯,学习了……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马