poj3748 位运算 bitset
2015-08-28 16:57
330 查看
位操作
Description
假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位为第31位),将第Y位开始的连续三位设置成110(从高位到低位的顺序),而其他位保持不变。对给定的寄存器值R,及X,Y,编程计算更改后的寄存器值R。
Input
仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合
Output
更改后的寄存器值R(16进制输出)
Sample Input
Sample Output
Source
ps:
自己看懂下面的bitset类模版的操作表即可
表3-7 bitset操作
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 9064 | Accepted: 3626 |
假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位为第31位),将第Y位开始的连续三位设置成110(从高位到低位的顺序),而其他位保持不变。对给定的寄存器值R,及X,Y,编程计算更改后的寄存器值R。
Input
仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合
Output
更改后的寄存器值R(16进制输出)
Sample Input
12345678,0,3
Sample Output
1234567c
Source
ps:
自己看懂下面的bitset类模版的操作表即可
表3-7 bitset操作
b.any() | b中是否存在置为1的二进制位? |
b.none() | b中不存在置为1的二进制位吗? |
b.count() | b中置为1的二进制位的个数 |
b.size() | b中二进制位的个数 |
b[pos] | 访问b中在pos处的二进制位 |
b.test(pos) | b中在pos处的二进制位是否为1? |
b.set() | 把b中所有二进制位都置为1 |
b.set(pos) | 把b中在pos处的二进制位置为1 |
b.reset() | 把b中所有二进制位都置为0 |
b.reset(pos) | 把b中在pos处的二进制位置为0 |
b.flip() | 把b中所有二进制位逐位取反 |
b.flip(pos) | 把b中在pos处的二进制位取反 |
b.to_ulong() | 用b中同样的二进制位返回一个unsigned long值 |
os << b | 把b中的位集输出到os流 |
#include<stdio.h> #include<string.h> #include<string.h> #include<iostream> #include<algorithm> #include<bitset> using namespace std; int main(){ int n,x,y; while(scanf("%x,%d,%d",&n,&x,&y)!=EOF){ bitset<32>q(n); q.reset(x); q.set(y); q.set(y-1); q.reset(y-2); printf("%x\n",q.to_ulong()); } return 0; }
相关文章推荐
- grunt构建前端自动化的开发环境
- 常见文件系统的格式
- freemarker 解析字符串模板
- android 粗暴简单仿美团/大众点评搜索方式,详细标注
- hadoop无法加载本地库文件的原因 Unable to load native-hadoop library for your platform
- iPhone开发之UIScrollView滚动组件的使用(四) 拖线实现 喜马拉雅案例
- iOS系统SDK实现毛玻璃效果(swift版 iOS8.0及其以上)
- 基本文件的I/O --压缩文件
- hdu 3400 Line belt(多重三分)
- 解决svn在win7下安装后右键无菜单项的问题
- 深入JVM系列(二)之GC机制、收集器与GC调优
- tomcat7配置环境变量
- java 死锁问题 代码实现
- 关于unity中的update、Lateupdate和FixedUpdate。
- android 粗暴简单仿美团/大众点评搜索方式,详细标注
- WIN7局域网文件共享设置方法
- C# vs C++ Performance
- iptebles(二)
- Eclipse 注释模板 函数注释 类注释 文件注释 Code Template - 2
- Linux中sort命令