逻辑运算与按位运算,不一样的两种运算。解释的挺清楚的了啊……
按位运算是把整数的每个二进制位与另一个整数对应的每个二进制位进行运算,是整数到整数的运算。逻辑运算其实是布尔值到布尔值的运算,只不过在C当中,所有非零整数都理解为true,所有0都理解为false。所以4 && 2 == 1,其实是4是true,2也是true,与的结果是true,所以是1。而按位操作,4是0b0100, 2是0b0010,它们没有重叠的二进制位,所以结果是4 & 2 == 0