Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!

# unsigned right shift operator ">>>".

srinibash udayasingh
Greenhorn
Posts: 22
Hi Ranchers

i am always confuse to solve " unsigned right shift operator ">>>". ".

can anyone explain with examples how it works.

Thanks

Mallik Avula
Ranch Hand
Posts: 86
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

Bert Bates
author
Sheriff
Posts: 8898
5
remember this topic is valid for the 1.4 exam but it's NOT on the 5.0 exam.

marc weber
Sheriff
Posts: 11343
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 ]