正如标题所说,&
在这个例子中做了什么:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 13;
int c = a & b;
cout << c << endl;
return 0;
}
我的问题是&#34;&amp;&#34;做一个&amp; b为什么c结果为8?
我目前正在关注this tutorial,但没有解释&#34;&amp;&#34;操作员那么好。
答案 0 :(得分:5)
正如评论和答案所示,这是一个bitwise operator
。按位运算符在对它们进行操作时将它们的操作数视为一组位。按位and
,我确信你可以猜到,and
两位,所以真值表看起来像:
A | B | A & B
---|---|------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
因此,当您and
a
和b
1010
时,它们的二进制值分别为1101
和and
,a
1}}每个b
位及其对应的 1010 -a, or 10
&1101 -b, or 13
-----
1000 -c, or 8
位,所以
{{1}}
答案 1 :(得分:1)
&amp;是一个按位AND运算符。有关详情,请参阅此链接:http://en.wikipedia.org/wiki/Bitwise_operations_in_C#Bitwise_AND_.22.26.22