if(!(1==(1<<i&5)||4==(1<<i&5)))在c++中什么意思?

如题所述

5的二进制为0000 0101
1的二进制为0000 0001
1<<i&5 是将1左移i位 之后再与5相与
显然 若i为0 则1<<i&5 为1 若i为2 则1<<i&5 结果为4

所以该判断的含义是if(i不为0且不为2)
个人见解 不知对否
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-29
if语句,先判断1 == ( 1 << i & 5)是否为真,如果是不用判断下一个也不执行下一句
<<左移右边的位数
& 按位与
|| 或运算符
^ 按位异或
<<的优先级大于& || ^
第2个回答  2012-03-28
<<和&是位操作符

c和c++中,诸如if(条件一||条件二)这样的语句,
不会,当第一个满足||的时候,就不在对第二个求值。同理,对于&&运算符当第一个不满足时,就不在预算下一个。这个在C中叫做快速求值。

c++中if(1)是什么意思,为什么if()里面不是一个表达式,如知道请详细解释...
if(1)这里1就是表达式,是一个永远为真的表达式 这个if一直都会执行的

if语句(条件表达式)(C++)
在编程语言C++中,if语句用于根据满足特定条件执行特定代码块,实现对程序流程的控制。if语句的结构类似于for循环,用于实现如打印1至10所有整数的操作。若希望仅打印1至10之间的所有偶数,忽略奇数,可以使用以下代码:输出结果:在if语句中使用条件表达式,确保其结果为布尔类型,即仅限于布尔类型和关系、...

c++中if(!i)怎么理解?或者是if(!+表达式)该如何理解,求高手帮忙,谢谢...
if(!i)就是当i等于0的时候执行if语句里面的内容。因为if语句括号里面是一个表达式,当表示式的值为0则不成立,再加一个不等于”!“,则成为当表达式的值为0则成立。

C++的if函数怎样使用?
if(true){ \\\\这里会执行 } if(false){ \\\\这里不执行 } if语句后面经常会有else语句 else是如果条件为false 时执行代码 if(true){ \\\\执行这里 }else{ \\\\这里不执行 } if(false){ \\\\这里不执行 }else{ \\\\执行这里的代码 } 在c里不为0的数也是true 所以也可以这样使用 int i=1;if(...

C++上的一些运算符顺序的问题:我是C++初学者,对运算符顺序不是很了解...
a[5] 等价于 *(a[5])(其中++和[]都属于后置运算符,而*属于前置运算符)b.赋值运算符永远是最后优先,而倒数第二优先的是逗号运算符.比如 a=1,b++,++c,4; 结果a=4;(但是前面的几个子表达式都先计算了,只是返回最后一个逗号表达式)c.按位逻辑运算符比关系逻辑运算符具有更高优先级...

C++中 if(!XXX)这种语句是什么意思
!XXX 就是 非XXX的意思。!XXX 就是 XXX 的补集。比如说 int a = 1,b = 0;(即a为真b为假时) if (a) 和 if (!b)是一样的,if (b)和if(!a)是一样的。不懂了继续追问哈!

‖在c++中是什麽意思
或者 比如 if (a==1 || a==2) 当 a等于1 或者当a等于 2时 输出下面信息 {printf("a<3");}

==编程中什么意思
表示"是否相等" 在C#中使用 == 表示相等,使用一个等号表示赋值在Vb中使用 = 表示相等在TRAN-SQL中也使用 = 表示相等例如: if (2==1) showMsg("2相等于1")sxs

c++编程,求大神帮忙解答
int dfs(int x, int y, int i) { \/\/ 当前位置出发,可以匹配s[i:5]的个数 if (i == 5)return dp[x][y][i] = 1; \/\/ 匹配到结尾,返回1个可行解 if (dp[x][y][i] != -1)return dp[x][y][i];dp[x][y][i] = 0;for (int k = 0; k < 4; ++k) { int ...

相似回答