2011年7月7日 星期四

C語言 練習 bit 操作

/*C不像verilog可以對指定位元做操作,所以都用mask的方式
*/

#include<stdio.h>
#include <stdbool.h>
#define if_power_of_2(n) (n != 0 && ((n & (n -1)) == 0))

int main()
{
  int x,i;
  x=(7&6);      
 
  int bit=1;
  bit=bit<<7; //這樣才能從左印到右
  for(i=0;i<8;i++)
  {
   if((bit&x)==0) // 要刮號,因為 == priority 大於 &    
   {          
      printf("0");  
      bit=bit>>1;
   }
   else
      {printf("1");  
      bit=bit>>1;
      }
  }
  printf("\n");
  printf("if_power_of_2(7)=%d\n",if_power_of_2(7));
  printf("if_power_of_2(4)=%d\n",if_power_of_2(4));
 
  system("pause");

   return 0;

}

沒有留言:

張貼留言