[英]What does the single & in the following statement mean?
strcat(b, ((x & z) == z) ? "1" : "0");
我了解strcat()
函数和条件(三元)运算符。 但是我不知道(x & z) == z
是什么意思。
&
是按位AND运算符。
这里, (x & z) == z
表示对x
和z
执行按位与运算,如果该值等于z
,则...
参考:第6.5.10章, C11
标准,“按位与运算符”
二进制
&
运算符的结果是操作数的按位与(即,当且仅当设置了转换后的操作数中的每个对应位时,结果的每个位才被设置)。
办法:
串连"1"
到字符串b
,如果按位和x
和z
是相同z
,否则串联"0"
字符串b
。
x&z
表示的按位安定x
和z
。
然后将结果与z
进行比较。
如果结果与z
相同,则条件评估为TRUE,否则为FALSE。
(x&z)== z表示在“ x”中,所有在“ z”中设置的位均被设置。
“ x”必须包含所有设置的位,或者另外还可以设置更多的位。 然后,此条件变为真。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.