I forget which is which, but one of >> and >>> maintains the sign bit, and one doesn't.

Here is a quick overview i found when googling "java shift operators"

also, I'm not sure i'd really say that x>>y means x / 2^y. try it with y=32 (i think that's the right value), and you'll notice that nothing actually happens. [ December 15, 2006: Message edited by: fred rosenberger ]

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

x << y is left shift ( x*pow(2,y)) x >> y is right shift( x/pow(2,y)) with sign fill operator. i.e while shiftg bits right the lower bits are discarded and higher bits are placed by 1 or 0 depending upon the sign bit of the no. here (x)

while in x >>> y , its right shift with Zero fill operator. i.e lower bits will b discarded but higher bits will b replaced by 0 regardless of the sign bit of no. here (x).

Detail topic you can find in Khalid Mughal or Kathy Sierra.

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com