//按位与:按二进制位进行"与"(&)运算 1100+1111=1100 只有1&1=1,其他都是0;
解题思路: 将第z到第y位进行(1<<i)得到1110000 与n进行按位与 即可得到第z到第y位(其余为全变成0)
注意事项: 去菜鸟教程看看(https://www.runoob.com/w3cnote/bit-operation.html)
参考代码:
#include<iostream> using namespace std; const int N=10010; unsigned int a,z,y; //无符号要用unsigned 对应%u int main(void) { cin>>a>>z>>y; int sum=0; for(int i=z;i<=y;i++) sum+=1<<i; //将1左移 sum=a∑ //进行 按位与 cout<<sum; return 0; }
0.0分
2 人评分