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
• Jeanne Boyarsky
• Ron McLeod
• Paul Clapham
• Liutauras Vilda
Sheriffs:
• paul wheaton
• Rob Spoor
• Devaka Cooray
Saloon Keepers:
• Stephan van Hulst
• Tim Holloway
• Carey Brown
• Frits Walraven
• Tim Moores
Bartenders:
• Mikalai Zaikin

# Operators

Ranch Hand
Posts: 87
• Number of slices to send:
Optional 'thank-you' note:
Which two are equivalent?

A.16>4
B.16/2
C.16*4
D.16>>2
E.16/2^2
F.16>>>2

Apparently D and F are both equivalent. I am familiar with the >> operator but I am not familiar with the >>> operator. What does it do? From my experimentation, they are exactly equivalent.

Ranch Hand
Posts: 377
• Number of slices to send:
Optional 'thank-you' note:

Originally posted by Raef Kandeel:
but I am not familiar with the >>> operator. What does it do? From my experimentation, they are exactly equivalent.

Try it with negative numbers.

Ranch Hand
Posts: 225
• Number of slices to send:
Optional 'thank-you' note:
hi

with >> shift operator the bits are moved to right by the number which you mentioned and the left most bit would be added by zero's.

But >>> shift operator works the same for positive values but for negative values the left most bits would be replaced by 1's and not zero's

sorry i cannot explain with example as i dont have material right now, but i am sure about the concept that >>> shift operator on a negative numbers shifts the bits as requested and the left most bits would be filled by 1's instead of 0'2.
i will just try and find a link for you give 5 min

Ranch Hand
Posts: 225
• Number of slices to send:
Optional 'thank-you' note:
oops i was very wrong forgive me i got it wrong here is an example hope it helps

Unsigned right-shift >>> (JLS �15.19)
identical to the right-shift operator only the left-bits are zero filled
because the left-operand high-order bit is not retained, the sign value can change
if the left-hand operand is positive, the result is the same as a right-shift
if the left-hand operand is negative, the result is equivalent to the left-hand operand right-shifted by the number indicated by the right-hand operand plus two left-shifted by the inverted value of the right-hand operand
For example: -16 >>> 2 = (-16 >> 2 ) + ( 2 << ~2 ) = 1,073,741,820
Decimal 16 00000000000000000000000000010000

Right-shift 2 00000000000000000000000000010000
fill left 00000000000000000000000000000100
discard right 00000000000000000000000000000100 -> Decimal 4

Decimal -16 11111111111111111111111111110000

>>> 2 11111111111111111111111111110000
fill left 0011111111111111111111111111110000

Ranch Hand
Posts: 225
• Number of slices to send:
Optional 'thank-you' note:
much more details are provided here please go through

http://www.janeg.ca/scjp/oper/shift.html

its clearly explained here

Ranch Hand
Posts: 225
• Number of slices to send:
Optional 'thank-you' note:
Here is a link which explains shift operators clearly

http://www.janeg.ca/scjp/oper/shift.html

Raef Kandeel
Ranch Hand
Posts: 87
• Number of slices to send:
Optional 'thank-you' note:
Thanks a lot srinivas. You did solve my problem. Take care

Greenhorn
Posts: 24
• Number of slices to send:
Optional 'thank-you' note:
All this is fascinating...

Didn't I read somewhere that shifting operators are not on the exam ?

Sheriff
Posts: 11343
• Number of slices to send:
Optional 'thank-you' note:

Originally posted by Dave Walsh:
..,Didn't I read somewhere that shifting operators are not on the exam ?

They are on the 1.4 exam, but not on the 1.5 exam.

Ranch Hand
Posts: 52
• Number of slices to send:
Optional 'thank-you' note:
because
16>>2 = 4 moving bit right decreases power of 2
here 2^4 =16 and right shift by 2 means 2^2 =4
16/2^2 = 4

Manfred Klug
Ranch Hand
Posts: 377
• Number of slices to send:
Optional 'thank-you' note:

Originally posted by Ameen khan:
16/2^2 = 4

Not correct, since '^' is the XOR operator.

 If I had asked people what they wanted, they would have said faster horses - Ford. Tiny ad: a bit of art, as a gift, that will fit in a stocking https://gardener-gift.com