转贴 c程序设计大赛
来源:互联网 发布:js中的value 编辑:程序博客网 时间:2024/05/17 03:46
Problem A: 位操作
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
12345678,0,3
Sample Output
1234567c
解题思路:
很简单的位操作,但是需要注意的是Y那里是 110,不能直接或上110,而是先两次SET,在CLR。dave就在这里浪费了有1个小时,惭愧
code
- #include <stdio.h>
- #define CLR(r, x) r &= ~(1UL << x)
- #define SET(r, y) r |= (1UL << y)
- int main()
- {
- int r, x, y;
- scanf("%x,%d,%d", &r, &x, &y);
- CLR(r,x);
- SET(r,y);
- SET(r,y-1);
- CLR(r,y-2);
- printf("%x", r);
- return 0;
- }
- 转贴 c程序设计大赛
- C程序设计大赛B题
- C count_prime 南京理工大学第八届程序设计大赛
- 西安邮电大学C程序设计大赛初赛
- 程序设计大赛
- 程序设计大赛
- 2014年携程程序设计大赛 预赛第一场 A,B,C
- 南京理工大学第八届程序设计大赛(校外镜像) C-count_prime
- 南京理工大学第八届程序设计大赛 #C Count_Prime Solution
- 南京理工大学第八届程序设计大赛(校外镜像) C count_prime
- 华中农业大学第四届程序设计大赛网络同步赛 C
- [2017百度之星程序设计大赛- 复赛] C
- 2017年“华信智原杯”安徽省大学生程序设计大赛C题刷票
- ACM程序设计大赛简介
- 程序设计大赛题目
- 2008程序设计大赛
- 程序设计大赛---骑士巡游
- 程序设计大赛—文字游戏
- 第一天
- 可以向大家学习了
- 匆匆
- sql server bcp命令
- 关于在asp.net调试时断点处不中断的问题
- 转贴 c程序设计大赛
- 90度的爱情,180度的转身
- 对于数组和指针的理解
- Oracle存储过程(转)
- 从今天开始,我要尝试每天进步百分之一!
- 常见C/C++笔试题目整理(含答案)1
- 常见C/C++笔试题目整理(含答案)2
- 常见C/C++笔试题目整理(含答案)3
- java学习