C++中'和'和'&'有什么区别?

zha*_*eng 1 c++

#include <iostream>
int main(int argc, char* argv[])
{
    unsigned long mask = 0x00000001;
    unsigned long mask1 = 0x00000001;
    unsigned long mask2 = 0x00000010;
    if ((mask and mask1) && (mask and mask2))// CONDITION_1 is True.
        std::cout << "Ohhhhhhh..." << std::endl;
    if ((mask & mask1) && (mask & mask2)) //CONDITION_2 is False.
        std::cout << "No Output..." << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为CONDITION_1和CONDITION_2都是假的,但我的想法显然是错误的,为什么'和'和'&'在C++中不一样?

Edw*_*nge 12

and并且&&是一样的.这是合乎逻辑的. &是按位的.


Mik*_*our 5

and或者&&是逻辑AND运算符.true如果两个操作数都转换为,则会产生true.

bitand或者&是按位AND运算符.如果设置了两个操作数的相应位,则设置结果的每个位.