Hi srinibash udayasingh , If the left-hand operand is positive, the result is the same as a right-hift For example: 16 >> 2 = 4 Decimal 16 00000000000000000000000000010000 Right-shift 2 00000000000000000000000000010000 fill left 00000000000000000000000000000100 discard right 00000000000000000000000000000100 -> Decimal 4
If the left-hand operand is negative, For example: -16 >>> 2 = 1,073,741,820 Decimal -16 11111111111111111111111111110000 >>> 2 11111111111111111111111111110000 fill left 0011111111111111111111111111110000 discard right 00111111111111111111111111111100 -> 1,073,741,820.
The signed right shift operator (>>) shifts to the right while maintaining the sign. That means it fills in positions on the left with the same value as the "sign bit" (the leftmost bit before the shift). This has the effect of keeping positive values (with a sign bit of 0) positive by filling in with zeros, and keeping negative values (with a sign bit of 1) negative by filling in with ones.
The unsigned right shift operator (>>>) shits to the right without caring what the original sign was. It simply fills in positions on the left with zeros.
(Note Bert's post above.) [ July 20, 2007: Message edited by: marc weber ]
"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer sscce.org