为什么这个按位运算符导致错误?

时间:2015-04-20 19:38:57

标签: c bitwise-operators

int u = 21;
int v = 10;

if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);

这仅打印"时间继续!!"这是有道理的,因为u和v在第一个if语句中都是真的,但对于" if(u& v)"我不确定它是如何确定这是真还是假。我得到了21和10的两个二进制表示,但接着是什么?谢谢!

1 个答案:

答案 0 :(得分:7)

二进制中的21是10101,而二进制中的10是01010。按位&返回000000,即false