判断整形a 是的2^n , 交换那个整数的值

 24         /**
 25  * 当一个数是2的n次方的时候,必然会出现吗,二级制:100000, 
 26  * -1 二进制是: 11111,  则两个数去 & ,必然为 0,
 27  *  8 的二进制 1000, 7 的二进制是: 111,
 28  *  去 & 为 0 
 29  */     
 30         int a = x&(x-1);// =0 是,!=0 不是

 31         printf("is2n is a:%d\n",a);


----------------------------------------交换顺序------------------------------------------------------------------

             int a=10;
  7         int b = 100;
  8 
  9         a^=b;
 10         b^=a;
 11         a^=b;

-----------------------低位在前还是高位在前的判断--------------------------------------------

1 #include<stdio.h>
  2 
  3 union{
  4         int i;
  5         char c[sizeof(int)];
  6 }X;
  7 
  8 
  9 int main()
 10 {
 11         X.i = 1;
 12         if(X.c[0] ==1){
 13 
 14                         printf("低位到高位\n");
 15                 }else{
 16                         printf("高位到低位\n");
 17 
 18                 }
 19 
 20 }



你可能感兴趣的:(判断整形a 是的2^n , 交换那个整数的值)