单身和单身是什么?在以下声明中意味着什么?

时间:2015-05-07 10:27:08

标签: c bit-manipulation bitwise-operators bitwise-and

strcat(b, ((x & z) == z) ? "1" : "0");

我理解strcat()函数和条件(三元)运算符。但我不知道(x & z) == z的含义。

3 个答案:

答案 0 :(得分:4)

&是按位AND运算符。

此处,(x & z) == z表示执行xz的按位AND,如果该值等于z,则....

参考:第6.5.10节,C11标准,“按位AND运算符”

  

二进制&运算符的结果是操作数的按位AND(即,当且仅当设置了转换后的操作数中的每个相应位时,才会设置结果中的每个位)。 / p>

答案 1 :(得分:2)

手段:

如果按位且"1"bx相同,则将z连接到字符串z,否则将"0"连接到字符串{ {1}}。

b表示x&zx的按位和。

然后将结果与z进行比较。

如果结果与z相同,则条件评估为TRUE,否则为FALSE。

答案 2 :(得分:1)

(x& z)== z表示在'x'中,'z'中设置的所有位都是SET。

'x'必须包含所有设置的位或者另外还可以设置更多位。那么这个条件就变成了现实。