黑马程序员技术交流社区
标题:
哪位大神可以帮忙解答一下??
[打印本页]
作者:
woshijingke
时间:
2016-5-15 09:57
标题:
哪位大神可以帮忙解答一下??
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之后的结果是什么,两边都是数字啊。。。。。。。。
作者:
lqy1991
时间:
2016-5-25 23:31
<<是左移位运算符,1<<j就是1乘2的j次方,(1<<j) & i 这个&是位与运算,举个例子,1&2得0,因为1的二进制是001,2的二进制是010,而001和010的位与运算是它们的每一位对应计算,即每一位有0得0,所有1&2得0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2