黑马程序员技术交流社区

标题: 关于今天第一次考试的小题目 求解答 [打印本页]

作者: yin12310    时间: 2016-7-2 23:54
标题: 关于今天第一次考试的小题目 求解答
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();
作者: ImKing    时间: 2016-7-3 11:11
问题解答分为以下几步:
(1)明确 Java 中整型占用 4 个字节 = 32位,32与题目题中 31 ~ 0 对应
(2)<< 左移符号,1 << 31 , 把 1(00000000000000000000000000000001)左移 31 位,得到2的31次方           (10000000000000000000000000000000),然后与 i 相与,最高位与操作结果,同为1,输出1;i 最高位为 0 输出 0
(3)输出的顺序是从高位到地位
(4)如有不明白,欢迎留言,加油!{:2_36:}





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