C语言位操作中指定的某一位数置0、置1、取反


C语言位操作中指定的某一位数置0、置1、取反


一、指定的某一位数置1

                宏 #define setbit(x,y)  x|=(1<

二、指定的某一位数置0

            宏  #define clrbit(x,y)  x&=~(1<

三、指定的某一位数取反

               宏  #define reversebit(x,y)  x^=(1<

三、获取的某一位的值

         宏 #define getbit(x,y)   ((x) >> (y)&1)

四、C++测试代码:

#include   
#include "stdio.h"  
#include   
using namespace std;  
#define setbit(x,y)  x|=(1<> (y)&1)
int main()  
{   
   unsigned int m=0x0f0ff0f0;  
   printf("original m=0x%x\n",m);  
   reversebit(m,7);  
   printf("reversebit 7 bit,then m=0x%x\n",m);  
   setbit(m,7);  
   printf("setbit 7  bit,then m=0x%x\n",m);  
   clrbit(m,7);  
   printf("clrbit 7 bit,then m=0x%x\n",m);  
 
   for(int i=0;i


五、测试运行结果:

C语言位操作中指定的某一位数置0、置1、取反_第1张图片

你可能感兴趣的:(C和C++语言)