作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
考虑:
int a = 0;
a |= 1 << a;
System.out.println(a);
它打印“1”。为什么?我认为向左位移 0 任意次数仍然是 0。它从哪里拉出 1?
最佳答案
表达式1 << a;
将移动值 1
, a
次数。
换句话说,您的值为 1:
0000001
现在,您将整个内容向左移动 0 位。然后你有:
0000001
然后你有:
a |= 1 << a;
解析为:
a = 0000000 | 0000001
或者:
a = 1;
您可能混淆了操作数。如果您尝试将值 0 向左移动一位,您需要:
a |= a << 1;
关于java - Java 左移 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006807/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!