为什么这个按位运算符结果为假?
Why is this bitwise operator resulting false?
int u = 21;
int v = 10;
if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);
这只打印 "Time to move on!!" 这是有道理的,因为在第一个 if 语句中 u 和 v 都为真,但是对于 "if (u & v)" 我不确定它是如何确定它是真还是假的。我明白了,它是 21 和 10 的两个二进制表示,但是然后呢?谢谢!
二进制中的 21 是 10101
,而二进制中的 10 是 01010
。按位 &
returns 00000
或 0
,即 false
.
int u = 21;
int v = 10;
if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);
这只打印 "Time to move on!!" 这是有道理的,因为在第一个 if 语句中 u 和 v 都为真,但是对于 "if (u & v)" 我不确定它是如何确定它是真还是假的。我明白了,它是 21 和 10 的两个二进制表示,但是然后呢?谢谢!
二进制中的 21 是 10101
,而二进制中的 10 是 01010
。按位 &
returns 00000
或 0
,即 false
.