C语言位操作中的置0和置1

     C语言中,有时需要进行置位操作,比如针对其中的某些位。这样做的目的是既达到了目标,又不会影响其它位。常用的置位操作如下:

#define   setbit(x,y)    x|=(1<<y) //将X的第Y位置1
#define   clrbit(x,y)     x&=~(1<<y) //将X的第Y位清0

      举个例子:

int main(int argc, char* argv[])
{
      unsigned char a = 0x55;
      unsigned char b = a|(1<<1);      //第一位置1
      unsigned char c = a&~(1<<2);   //第二位置0
      printf("Hello World! 0x%x,0x%x/n",b,c);
      return 0;
}

输出0x57,0x51。0x57即从01010101,变成01010111;0x51即从01010101,变成01010001。

你可能感兴趣的:(c,语言)