按位与运算符(&)用于对两个整数的二进制表示进行按位“与”操作。具体来说,它会比较两个二进制数字的对应位,只有当两个位都为1时,结果位才为1,否则为0。
1010
& 1101
----
1000
例子中,只有第二位上的1和第三位上的1同时为1,所以结果中的对应位为1,其他位为0。
按位与运算在判断奇偶数时有奇效
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<(n&1?"odd":"even");
/*n & 1 执行了 n 和 1 的按位与运算。按位与运算的规则是:
两个相应的二进制位都为1时,结果位为1,否则为0。*/
return 0;
}
(n & 1 ? "odd" : "even")
表示:如果 n
的最低位为1,返回字符串 "odd",否则返回字符串 "even"。
gtp原解