Tuesday, November 23, 2010

BITWISE OPERATORS IN C

C Provides six operators for bit manipulation.
bitwise AND
bitwise inclusive OR
bitwise exclusive OR
<< left shift
>> right shift
one's complement (unary)


1.left shift <<;
                     a<<n ;  n number of bits will shifted toward left. 
                     Ex; 8<<2 
                     binary representation of 8 ; 00001000 << 2 
                     00001000<<2 ;
                    -------------------
                     00100000 ;  answer is 32  



2.Right shift <<;
                     a>>n ;  n number of bits will shifted toward right. 
                     Ex; 8>>2 
                     binary representation of 8 ; 00001000 >>2 
                     00001000>>2 ;
                    -------------------
                     00000010;  answer is 2 

Another way for calculating left and right shift:  a<<n = a*2^n;  a >> n =  a/2^n ; 

3.Bitewise AND &;
                               It is just like logical AND(&&) but we apply AND operation at binary level. 

Example:   2 & 3 ;
2; 00000010
3; 00000011   &
---------------------

    00000010  answer is 2 



4.Bitewise OR |;
                               It is just like logical OR(||) but we apply OR operation at binary level. 

Example:   2 | 3 ;
2; 00000010
3; 00000011   |
---------------------
    00000011  answer is 3 

5.Exclusive OR ^;
                             The ^ (caret) operator performs a bitwise exclusive-OR on two integers. Each bit in the result is 1 if  one is 1 but not both, result will be 0 if both are 0 or 1. 
Example:   2 ^ 3 ;
2; 00000010
3; 00000011   ^
---------------------
    00000001  answer is 1 

6.One's complement ~;
                               The ~ (tilde) operator performs a bitwise complement on its single integer operand. (The ~ operator is therefore a unary operator, like ! and the unary -&, and * operators.). at binary level 0 will be converted into 1 and 1 will converted into 0. 

~ 2 ;  00000010 ~
---------------------------
          11111101  answer is -3

No comments:

Post a Comment