1234567c
/*************************************************************************
> File Name: a.c
> Author: 傻李
> Mail: hellojukay@gmail.com
> Created Time: 2014年11月15日 星期六 18时37分42秒
************************************************************************/
#include<stdio.h>
void print(int);
int main()
{
int R;
int x,y;
scanf("%x,%d,%d",&R,&x,&y);
//第x位置0
print(R);
x = x &(~ (1UL << x));
//Y位开始连续3位置110
R = R | (1UL << y);
R = R | (1UL << (y-1));
R = R &(~ (1UL << (y-2)));
printf("%x\n",R);
print(R);
return 0;
}
void print(int c)
{
if(c>>1)
print(c>>1);
printf("%d",c&1);
}
#include <stdio.h>
#define CLR(r, x) r &= ~(1UL << x) //1UL表示32位无符号数,将r的x位清零。
#define SET(r, y) r |= (1UL << y) //表示将r的y位置零
int main() {
int r, x, y;
scanf("%x,%d,%d", &r,&x, &y);
CLR(r,x); //清除x位
SET(r,y); //置位y位
SET(r,y-1); //置位y-1位
CLR(r,y-2); //置位y-2位
printf("%x", r);
return 0;
}原文:http://blog.csdn.net/u013163178/article/details/41149077