//按位与:按二进制位进行"与"(&)运算 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分
1 人评分
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:601 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:339 |
1048题解(读入回车问题)浏览:566 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:548 |
C语言训练-自守数问题 (C语言代码)浏览:752 |
杨辉三角 (C语言代码)浏览:680 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:478 |
孤独的骑士 (C语言代码)浏览:1372 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:700 |
C二级辅导-公约公倍 (C语言代码)浏览:665 |