C 为什么这个按位运算符会导致false?
这只打印“时间继续!!”,这很有意义,因为在第一个if语句中u和v都是真的,但对于“if(u&v)”,我不确定它是如何确定这是真是假的。我明白了-,是21和10的两个二进制表示,但是接下来呢?谢谢 21在二进制中是C 为什么这个按位运算符会导致false?,c,bitwise-operators,C,Bitwise Operators,这只打印“时间继续!!”,这很有意义,因为在第一个if语句中u和v都是真的,但对于“if(u&v)”,我不确定它是如何确定这是真是假的。我明白了-,是21和10的两个二进制表示,但是接下来呢?谢谢 21在二进制中是10101,而10在二进制中是01010。按位&返回00000,或0,这是false好的,如果是23 so 10111和10 so 01010,这会导致1 so true吗?它会导致2(00010在2的位置有1)。任何非零的结果均为true。 int u = 21; int v = 1
10101
,而10在二进制中是01010
。按位&
返回00000
,或0
,这是false
好的,如果是23 so 10111和10 so 01010,这会导致1 so true吗?它会导致2(00010
在2
的位置有1
)。任何非零的结果均为true
。
int u = 21;
int v = 10;
if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);