黑马程序员技术交流社区

标题: 十进制转换为二进制 [打印本页]

作者: 尹兆国    时间: 2014-6-13 01:47
标题: 十进制转换为二进制
本帖最后由 尹兆国 于 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]?)


作者: 会说话的木头    时间: 2014-6-13 02:21
哥们哪一天的视频例题?10&1 =0 ,这个题不错 ,我也说不太明白
作者: 尹兆国    时间: 2014-6-14 00:29
会说话的木头 发表于 2014-6-13 02:21
哥们哪一天的视频例题?10&1 =0 ,这个题不错 ,我也说不太明白

毕老师的视频 day04 ArrayTest6.java
作者: 尹兆国    时间: 2014-6-14 00:31
会说话的木头 发表于 2014-6-13 02:21
哥们哪一天的视频例题?10&1 =0 ,这个题不错 ,我也说不太明白

10的二进制是1010,1的二进制是1,前面补3个0,即0001。所以1010&0001=0,你是对的,谢谢啊
作者: 会说话的木头    时间: 2014-6-14 00:35
尹兆国 发表于 2014-6-14 00:31
10的二进制是1010,1的二进制是1,前面补3个0,即0001。所以1010&0001=0,你是对的,谢谢啊 ...

:handshake:handshake:handshake
作者: ╭月牙湾湾╮    时间: 2014-6-14 00:42
   学习了




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