很久没有做acm题了,今天心血来潮,找个最简单的热热手。
这道题是有关位操作的,题目相当简单,但也需要细心,两次wa之后终于ac了。起初写宏定义时在参数(前加了个空格,总是会编译出错,查了好久,这样的错误出了几次了,总是难以发现,看来是要更细心点了。
Source Code
Problem: 3748 | User: lengshu | |
Memory: 156K | Time: 0MS | |
Language: C++ | Result: Accepted |
- Source Code
#include <stdio.h> #define MOVELEFTBIT(xx) (0x1<< (xx)) #define RESETBIT(rr,xx) ((rr) & (~MOVELEFTBIT(xx))) #define SETBIT(rr,xx) ((rr) | MOVELEFTBIT(xx)) int main(int argc, char* argv[]) { int r,x,y; scanf("%x,%d,%d",&r,&x,&y); r = RESETBIT(r,x); r = SETBIT(r,y); r = SETBIT(r,y - 1); r = RESETBIT(r,y - 2); printf("%x",r); return 0; }