//按位与:按二进制位进行"与"(&)运算 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++代码)浏览:1110 |
【绝对值排序】 (C语言代码)浏览:713 |
求圆的面积 (C语言代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:518 |
成绩转换 (C语言代码)浏览:1005 |
WU-字符串比较 (C++代码)浏览:754 |
蛇行矩阵 (C语言代码)浏览:524 |
C语言训练-数字母 (C语言代码)浏览:600 |
Cylinder (C语言描述+详细分析)浏览:3262 |
DNA (C语言代码)浏览:746 |