Hi, Could somebody explain me the meaning of unsigned shift. What exactly is happening here? How integer can be shift by 35 bits? int i = 5; i>>>32 or i>>>0 and i>>>35 Thanks Amit

Hi Amit, with unsigned shift, it actualy works this way i>>>35%32 == i >>> 3 (i.e. the remainder of % operation 35 - 32) so i>>>32 == i >>> 0 (i.e. the value will be same after the operation) Similarly i>>>64 will also be equivalent to i>>>0. Hope this helps.....

Amit Tyagi
Ranch Hand

Joined: Oct 18, 2000
Posts: 52

posted

0

Thanks Sudhir, How it will work for the negative numbers? -35>>>35 Amit

to do the above shift operation step1: you calculate the binary value of 35 i.e 0100011 step2: find the two's compliment of it i.e.it becomes 1011100 step3: then add 1 to it i.e. it becomes 1001101 step4: now shift it by 3 places to its right note: in first shift itselt it looses its sign step5: recalculate to decimal form I hope answer is inline for what u r looking bye ranga..

Hi Prasad, It's easier to work with the formula equivalents for the shift operators. <pre> Left-shift: 16<<5 equivalent to 16 * 2<sup>5</sup><br /> Right-shift: 16>>5 equivalent to 16 / 2<sup>5</sup>

</pre> For the unsigned right shift operator >>>, if the number is positive, the result is the same as the right-shift operator. If the number is negative the equivalent formula is: <pre> -16 >>> 5 equiv to (16>>5) + ( 2<<~5) </pre> Hope that helps. ------------------ Jane [This message has been edited by Jane Griscti (edited October 29, 2000).]