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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int i = 2;
for(int j = 31; j >=0; j--)
            if(((1 << j) &  i) != 0)
                System.out.print("1");
            else
                System.out.print("0");
        System.out.println();
上面的程序中if(((1<<j) & i) != 0)这句话怎么理解? 1左移几位就是1乘以2的几次幂,& i之后的结果是什么,两边都是数字啊。。。。。。。。

1 个回复

倒序浏览
<<是左移位运算符,1<<j就是1乘2的j次方,(1<<j) & i 这个&是位与运算,举个例子,1&2得0,因为1的二进制是001,2的二进制是010,而001和010的位与运算是它们的每一位对应计算,即每一位有0得0,所有1&2得0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马