黑马程序员技术交流社区

标题: 昨天考试,有道题目求助 [打印本页]

作者: 人造番茄    时间: 2015-7-12 10:25
标题: 昨天考试,有道题目求助
14.设以下是应用程序中定义的方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是 (   )。
static void printBinary(int i) {
        System.out.print(i + "的2进制数表示为:\t");
        for(int j = 31; j >=0; j--)
            if(((1 << j) &  i) != 0)
                System.out.print("1");
            else
                System.out.print("0");
        System.out.println();
  }
A) 00000000000000000000000000000001
B) 00000000000000000000000000000010       
C) 00000000000000000000000000001111
D) 00000000000000000000000000000000
作者: lwen    时间: 2015-7-12 10:43
B,虽然那个循环判断那么复杂,但是看到输入的参数是2,求2的二进制数也只有B符合了
作者: 乔栋    时间: 2015-7-12 11:23
B了 2的31数字比较大,咱们可以看循环到最后两位j=1和j=0的情况,纸上写写答案就出来了
作者: 122125241    时间: 2015-7-12 13:11
左移右移还是求2- -!
作者: threeforPP    时间: 2015-7-12 13:16
果断B啊                  
作者: 雏鹰起飞    时间: 2015-7-12 14:32
就是求2的二进制啊
作者: Claw    时间: 2015-7-12 14:48
楼上都说了。
这就是个混淆视听的干扰因素较多而已。
作者: Nemo    时间: 2015-7-12 15:19
这题目我也是醉了
作者: pathnet    时间: 2015-7-12 17:01
昨天我选了A,坑了
作者: pathnet    时间: 2015-7-12 17:03
乔栋 发表于 2015-7-12 11:23
B了 2的31数字比较大,咱们可以看循环到最后两位j=1和j=0的情况,纸上写写答案就出来了 ...

解释一下瞬间懂了,注意力被转移了,哎
作者: Miss.H    时间: 2015-7-12 17:38
其实都说了输出i的2进制,不说也不难啊
作者: 小虎199406    时间: 2015-7-12 18:39
想都不用想  2的2进制就是B
作者: zhand    时间: 2015-7-12 22:11
果断看回复的飘过 哈哈
作者: oooohnick    时间: 2015-7-13 07:47
看了回帖后秒懂 谢谢分享!
作者: 李文思    时间: 2015-7-13 09:53
有道理啊,2的2进制表示形式就是0000-0010啊




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