True or False? Unsigned Right Shift on a Negative Integer always returns a Positive Integer. the answer is false.. why it is false..can someone help plz~

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.

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 J Bruesch<br /><i>I code, therefore I am.</i>

Michael Bruesch
Ranch Hand

Joined: Sep 23, 2001
Posts: 158

posted

0

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

Joined: Jan 27, 2001
Posts: 5089

posted

0

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

Joined: Oct 21, 2001
Posts: 16

posted

0

wow, now i understand^^ thanx guys..

Hung Chang
Greenhorn

Joined: Oct 21, 2001
Posts: 16

posted

0

this Question comes from Jtips exam at mock exam1 number#27