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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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();

1 个回复

倒序浏览
问题解答分为以下几步:
(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:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马