3748 位操作

来源:互联网 发布:mac of office 2011 编辑:程序博客网 时间:2024/06/02 11:23

     很久没有做acm题了,今天心血来潮,找个最简单的热热手。

     这道题是有关位操作的,题目相当简单,但也需要细心,两次wa之后终于ac了。起初写宏定义时在参数(前加了个空格,总是会编译出错,查了好久,这样的错误出了几次了,总是难以发现,看来是要更细心点了。

 

Source Code

Problem: 3748 User: lengshuMemory: 156K Time: 0MSLanguage: 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;}