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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尹兆国 中级黑马   /  2014-6-13 01:47  /  1412 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 尹兆国 于 2014-6-15 14:59 编辑
  1. public static void toBin(int num)
  2. {
  3.         //定义二进制的表。
  4.         char[] chs = {'0','1'};

  5.         //定义一个临时存储容器。
  6.         char[] arr = new char[32];

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

  9.         while(num!=0)
  10.         {
  11.                 int temp = num & 1;

  12.                 arr[--pos] = chs[temp];

  13.                 num = num >>> 1;
  14.         }

  15.         for(int x=pos; x<arr.length; x++)
  16.         {
  17.                 System.out.print(arr[x]);
  18.         }
  19. }
复制代码
         int temp = num & 1;//通过&1,得到一个值为01temp,然后获得表中的元素,但我不明白的是,为什么是&1,而不是&别的数
     比如假设num=10 temp=10&1=10 arr[--pos] = chs[temp](arr[--pos] = chs[10]?)

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

5 个回复

倒序浏览
哥们哪一天的视频例题?10&1 =0 ,这个题不错 ,我也说不太明白

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
会说话的木头 发表于 2014-6-13 02:21
哥们哪一天的视频例题?10&1 =0 ,这个题不错 ,我也说不太明白

毕老师的视频 day04 ArrayTest6.java
回复 使用道具 举报
会说话的木头 发表于 2014-6-13 02:21
哥们哪一天的视频例题?10&1 =0 ,这个题不错 ,我也说不太明白

10的二进制是1010,1的二进制是1,前面补3个0,即0001。所以1010&0001=0,你是对的,谢谢啊
回复 使用道具 举报
尹兆国 发表于 2014-6-14 00:31
10的二进制是1010,1的二进制是1,前面补3个0,即0001。所以1010&0001=0,你是对的,谢谢啊 ...

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