Google+

Wednesday, July 14, 2010

Bit Wise in any programming language

Bitwise operations

Bitwise operators include:

&AND
&=AND
|OR
|=OR
^XOR
^=XOR
~one's compliment
<<Shift Left
<<Shift Left
>>=Shift Right
>>=Shift Right

AND OR and XOR

These require two operands and will perform bit comparisions.

AND & will copy a bit to the result if it exists in both operands.

     main()   {     unsigned int a = 60;	/* 60 = 0011 1100 */       unsigned int b = 13;	/* 13 = 0000 1101 */     unsigned int c = 0;                 c = a & b;                  /* 12 = 0000 1100 */    }  

OR | will copy a bit if it exists in eather operand.

     main()   {     unsigned int a = 60;	/* 60 = 0011 1100 */       unsigned int b = 13;	/* 13 = 0000 1101 */     unsigned int c = 0;                 c = a | b;                  /* 61 = 0011 1101 */    }  

XOR ^ copies the bit if it is set in one operand (but not both).

     main()   {     unsigned int a = 60;	/* 60 = 0011 1100 */       unsigned int b = 13;	/* 13 = 0000 1101 */     unsigned int c = 0;                 c = a ^ b;                  /* 49 = 0011 0001 */    }  

o

Ones Complement

This operator is unary (requires one operand) and has the efect of 'flipping' bits.

  main()   {     unsigned int Value=4;          /*   4 = 0000 0100 */        Value = ~ Value;               /* 251 = 1111 1011 */      }  



Bit shift.

The following operators can be used for shifting bits left or right.

<<>><<=>>=

The left operands value is moved left or right by the number of bits specified by the right operand. For example:

  main()   {     unsigned int Value=4;          /*  4 = 0000 0100 */       unsigned int Shift=2;      Value = Value << 16 =" 0001" 64 =" 0100">

Usually, the resulting 'empty' bit is assigned ZERO. Please use unsigned variables with these operators to avoid unpredictable results.


1 comment:

  1. Well explained operators . Operators are the important part of any programming language. In the above post list of operators is available with the examples.

    sap support packs

    ReplyDelete