Win a copy of The Java Performance Companion this week in the Performance forum!

# >>>

Hung Chang
Greenhorn
Posts: 16
True or False?
Unsigned Right Shift on a Negative Integer always returns
a Positive Integer.
why it is false..can someone help plz~

Johannes de Jong
tumbleweed
Bartender
Posts: 5089
Unsigned Right Shift
The word unsigned says it all. This means that the sign bit which is the left-most bit (also called high-order bit) is not included in the shift.

Michael Bruesch
Ranch Hand
Posts: 158
If you mean Shift-Right-With-Zero-Fill, the >>> operator, then that's probably a trick question. If you shift an integer 0 or any multiple of 32 bits to the right, you will get the same number again. Take this example:
int x = -1;
x = x >>> 0; // x is still -1
x = x >>> 32 // x is still -1
And so on. Now honestly I'm not sure why you get back to the same number after 32, unless it somehow subtracts the highest multiple of 32 from the bit shift number, then shifts??? Dangit, now I have a question...
------------------
Michael J Bruesch
Codito, ergo sum...
I code, therefore I am.
http://www.geocities.com/mjbruesch

Michael Bruesch
Ranch Hand
Posts: 158
Alright, found it.

The number of bits shifted is always in the range modulus 32 for an int value, and in the range modulus 64 for a long value.
A Programmer's Guide to Java Certification by Khalid Mughal

That's why a 32 shift distance is the same as a 0 shift distance.
------------------
Michael J Bruesch
Codito, ergo sum...
I code, therefore I am.
http://www.geocities.com/mjbruesch

Johannes de Jong
tumbleweed
Bartender
Posts: 5089
Whow I have egg on my face
According to sun :
"unsigned right shift, >>> , changes sign of negative numbers"
see this
So you Hung the answer should be true. Where did you get the the question and answer ??

Hung Chang
Greenhorn
Posts: 16
wow, now i understand^^
thanx guys..

Hung Chang
Greenhorn
Posts: 16
this Question comes from Jtips exam at mock exam1 number#27

Johannes de Jong
tumbleweed
Bartender
Posts: 5089
Hun look here Java FAQ 3.21 hope that helps.

Marilyn de Queiroz
Sheriff
Posts: 9065
12
The key is "always"
Unsigned Right Shift on a Negative Integer always returns
a Positive Integer.