This week's book giveaways are in the iOS and Features new in Java 8 forums. We're giving away four copies each of Barcodes with iOS: Bringing together the digital and physical worlds and Core Java for the Impatient and have the authors on-line! See this thread and this one for details.

What is the basic difference in >> and >>>?? I got that >> is for signed & >>> for unsigned. But what i did not get is, in >> sign get copied & in >>> no sign get copied.
What exactly it means by Sign get copied.

Integers are stored in two's complement format in Java (as in almost every other programming language). The leftmost bit of an int is the sign bit - if it's set, the number is negative, if it's cleared, the number is positive.

The >> operator shifts all the bits of the operand to the right and fills in the new bits on the left by copying the sign bit of the operand.

The >>> operator shifts all the bits of the operand to the right and sets the new bits on the left to zero.

For example: Suppose you have the number 11000101.

11000101 >> 2 = 11110001 note that the leftmost bits are set to 1

11000101 >>> 2 = 00110001 note that the leftmost bits are set to 0

Jesper Young wrote:Integers are stored in two's complement format in Java (as in almost every other programming language). The leftmost bit of an int is the sign bit - if it's set, the number is negative, if it's cleared, the number is positive.

The >> operator shifts all the bits of the operand to the right and fills in the new bits on the left by copying the sign bit of the operand.

The >>> operator shifts all the bits of the operand to the right and sets the new bits on the left to zero.

For example: Suppose you have the number 11000101.

11000101 >> 2 = 11110001 note that the leftmost bits are set to 1

11000101 >>> 2 = 00110001 note that the leftmost bits are set to 0

Ohk. Please correct me if i am wrong. by the example i understood as, we will delete the two right bits & shift all remaining towards right & for deleting two bits, we will be adding two 1s in case of >> and two 0s in case of >>> to the left most side.
Please respond.

Vishnu Sharma wrote:
Ohk. Please correct me if i am wrong. by the example i understood as, we will delete the two right bits & shift all remaining towards right & for deleting two bits, we will be adding two 1s in case of >> and two 0s in case of >>> to the left most side.
Please respond.

Almost.... Given this...

X0101010 where X could be either 1 or 0.

X0101010 >> 2 will yield XXX01010

and

X0101010 >>>2 will yield 00X01010

So, if X is zero, the two expressions will yield the same result (ie. >> doesn't always add 1's on the left).