这是什么意思"if(<an integer> & 2)"?
What is this meaning "if(<an integer> & 2)"?
这是什么意思"if(<an integer> & 2)"
?我在这里看到了它,但我把它写成了java,编译器不接受它。请帮帮我!
它必须是if ((integer & 2) != 0)
。
Java不像C++
那样将正整数识别为true
,将0
识别为false
。
否则,它测试从右边起的第二个位是否被设置,即它是1。
这是因为Java不会隐式地将0
大小写为false
。
在C++中,0
是false
,所以1 & 2
=0,这是错误的。
在Java中,1 & 2
仍然是0,但0不能被视为false
,因此编译器告诉您存在类型不匹配。
这是一个逐位运算符,提供第二个位。
例如:
# In binary:
1 = 0001 & 2: 0000
2 = 0010 & 2: 0010
3 = 0011 & 2: 0010
4 = 0100 & 2: 0000
5 = 0101 & 2: 0000
6 = 0110 & 2: 0010
这被称为"位和"。它接受两个参数并返回一个整数值,其中两个参数中只有1位设置为1,其余均为0。
在Java中不起作用的原因是Java if
语句只接受boolean
值。
&
符号采用两个给定数字的逐位AND。
例如,取二进制中的5 AND 7:0101 & 0111 = 0101
更多信息点击这里
当在IF语句中使用时,编译器将本质上检查结果数字是否为0并返回false,或者如果是其他数字则返回true。
相关文章:
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- EASTL矢量<向量<int>>连续的
- 使用IPC/共享内存将Integer数组从C++传递到Python
- C++ OpenCV Randu 函数抛出'Integer division by zero'
- 如何在满足常量表达式的同时将整数传递给指针,传递给 std::array<double、integer>?
- 在C++初始化程序列表中使用Integer Literals
- 为什么选择 g++ 给予者:"error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]"
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- C 字符串比较“祝您好运”&gt;“再见”
- C Integer在C 代码中使用时会失去其恒定状态
- 将 int 与 double 进行比较的预处理器"invalid integer constant expression"
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- 编译 C++ 代码时"Error: comparison between pointer and integer"
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- C 操作员&gt;&gt;与突变器过载
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 是否需要使用 - &gt;运算符在C 中调用成员函数时
- 什么是模板&lt;&gt;inline bla bla
- Bitwise integer concationation