AVR/Atmega128 강좌

비트와이즈(bitwise) 연산 예제

webnautes 2015. 2. 11. 12:06
반응형

 

 

  1. #include <stdio.h>  
  2. #include <math.h>  
  3.     
  4. void printBinary( unsigned char v )  
  5. {  
  6.     int i;  
  7.     
  8.     for( i=7; i>=0; i-- )  
  9.     {  
  10.         if ( (v&(1<<i)) )  
  11.             printf( "1" );  
  12.         else  
  13.             printf( "0" );  
  14.     }  
  15.     printf("\n");  
  16. }  
  17.     
  18. int main()  
  19. {  
  20.     int i;  
  21.     for( i=0; i<8; i++)  
  22.     {  
  23.         printf( "1<<%d ", i );  
  24.         printBinary( 1<<i );  
  25.     }  
  26.     
  27.     printf( "\n");  
  28.     
  29.     for( i=0; i<8; i++ )  
  30.     {  
  31.         printf( "1>>%d ", i );  
  32.         printBinary( 0x80>>i );  
  33.     }  
  34.     
  35.     printf("\n특정비트 1 세팅하기\n");  
  36.     unsigned char v=0;  
  37.     printBinary(v);  
  38.     printBinary( v|(1<<5) );  
  39.     
  40.     printf("\n특정비트 0으로 클리어하기\n");  
  41.     v = 0xFF;  
  42.     printBinary(v);  
  43.     printBinary( v&~(1<<5));  
  44.     
  45.     
  46.     return 0;  
  47. }  

 

반응형