Markus
0
Q:

c bitwise operators

/* C++ Program to demonstrate use of left shift  
   operator */
#include<stdio.h> 
int main() 
{ 
    // a = 5(00000101), b = 9(00001001) 
    unsigned char a = 5, b = 9;  
  
    // The result is 00001010  
    printf("a<<1 = %d\n", a<<1); 
    
    // The result is 00010010  
    printf("b<<1 = %d\n", b<<1);   
    return 0; 
} 
1
 Decimal         Binary           2's complement 
   0            00000000           -(11111111+1) = -00000000 = -0(decimal)
   1            00000001           -(11111110+1) = -11111111 = -256(decimal)
   12           00001100           -(11110011+1) = -11110100 = -244(decimal)
   220          11011100           -(00100011+1) = -00100100 = -36(decimal)

Note: Overflow is ignored while computing 2's complement.
0
// An simple example for binary digits (bits):
// Example: 01001011
//        0  0  0  0 1 0 1 1
//      128 64 32 16 8 4 2 1 
//      00001011 = 64 + 8 + 2 + 1 = 75 

int i = 1;

if (i == true && i = 1 || i = 2) 
{
  //And operator -> &&
  //Or operator -> ||
  i = i << 1;
  i = i >> 1;
  
  //Shift bits to left operator -> <<
  
  //Value of i : 
  //    0  0  0  0 0 0 0 1 } Value of i = 1
  //  128 64 32 16 8 4 2 1 } Values
  
  //    0   0  0  0  0 0 0 1 } Value of i = 2
  //  256 128 64 32 16 8 4 2 } Values shifted this way : >> 
  
  // i << (number of times) is same as i * (number of times)
  
  //Shift bits to right operator -> >>
  
  //Value of i : 
  //    0   0  0  0  0 0 0 1 } Value of i = 1
  //  256 128 64 32 16 8 4 2 } Values 
  
  //    0  0  0  0 0 0 0 1 } Value of i = 2
  //  128 64 32 16 8 4 2 1 } Values shifted this way : <<
  
  // i << (number of times) is same as i / (number of times)
}
-1

New to Communities?

Join the community