Using the bitwise shift operators : Shift operator « Operator « C Tutorial






#include <stdio.h>

void displayBits( unsigned value );

int main()
{ 
   unsigned number1 = 960;

   printf( "\nThe result of left shifting\n" );
   displayBits( number1 );
   printf( "8 bit positions using the " );
   printf( "left shift operator << is\n" );
   displayBits( number1 << 8 );

   printf( "\nThe result of right shifting\n" );
   displayBits( number1 );
   printf( "8 bit positions using the " );
   printf( "right shift operator >> is\n" );
   displayBits( number1 >> 8 );

   return 0;
}

void displayBits( unsigned value ) { 
   unsigned c;
   
   unsigned displayMask = 1 << 31;

   printf( "%7u = ", value );

   for ( c = 1; c <= 32; c++ ) { 
      putchar( value & displayMask ? '1' : '0' );
      value <<= 1;

      if ( c % 8 == 0 ) {
         putchar( ' ' );
      }
   }
   putchar( '\n' );
}
The result of left shifting
    960 = 00000000 00000000 00000011 11000000
8 bit positions using the left shift operator << is
 245760 = 00000000 00000011 11000000 00000000

The result of right shifting
    960 = 00000000 00000000 00000011 11000000
8 bit positions using the right shift operator >> is
      3 = 00000000 00000000 00000000 00000011








5.8.Shift operator
5.8.1.Using the bitwise shift operators