• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Liutauras Vilda
  • Henry Wong
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Al Hobbs
  • Carey Brown
Bartenders:
  • Piet Souris
  • Mikalai Zaikin
  • Himai Minh

i>>>32 ??? & i>>>0 and i>>>35

 
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Ranch Hand
Posts: 50
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 52
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Sudhir,
How it will work for the negative numbers?
-35>>>35
Amit
 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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..
 
Ranch Hand
Posts: 149
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
ranga,
Thanks for your answer.but how should i calculate binary value in the exam.Pls guide me in this regard.
Prasad
 
Ranch Hand
Posts: 3141
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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 / 25

</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).]
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic