在这个例子中"&"做了什么?

han*_*seN -7 c++ int operator-keyword

正如标题所说,&在这个例子中做了什么:

#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    int b = 13;
    int c = a & b;

    cout << c << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是"&"对a&b做了什么,为什么c结果为8?

我目前正在学习本教程,但没有解释"&"运算符.

sco*_*001 5

正如评论和答案所暗示的那样,这是一个bitwise operator.按位运算符在对它们进行操作时将它们的操作数视为一组位.按比and意志,因为我相信你能猜到,and两个位,所以真值表将如下所示:

 A | B | A & B
---|---|------
 0 | 0 |   0
 0 | 1 |   0
 1 | 0 |   0
 1 | 1 |   1
Run Code Online (Sandbox Code Playgroud)

所以当你和你and的时候,它们将分别取两个和它们的二进制值,并且每个位都有相应的位,所以ab10101101andab

 1010  -a, or 10
&1101  -b, or 13
-----
 1000  -c, or 8
Run Code Online (Sandbox Code Playgroud)