File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes How to use Bitwiae operators? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Head First Android this week in the Android forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "How to use Bitwiae operators?" Watch "How to use Bitwiae operators?" New topic

How to use Bitwiae operators?

Varuna Seneviratna
Ranch Hand

Joined: Jan 15, 2007
Posts: 167

The above is from the book I am reading these days.It says"gives you a one if the forth bit from the right in the binary representation of n is 1 and 0 if not".

Can you explain this a bit further.
Are the operators &, |, ^, ~ bitwise operators?
I thought >>>, >> are the bitwise operators.
Where can I get some more information about bitwise operators?
Why do we have bitwise operators, during what situations are they used?


Varuna Seneviratna
marc weber

Joined: Aug 31, 2004
Posts: 11343

&, |, ^, and ~ are bitwise operators.

>>>, >>, and << are bit shift operators.

See Java Tutorial - Bitwise and Bit Shift Operators.

With respect to your example, the & operator compares two values bit by bit (bitwise), and returns a 1 if both values have a 1 in that position. In other words, if the first value has a 1 in that position AND the second value also has a 1 in that position. Otherwise, it returns a 0.

For example, suppose you have two binary values: 1100 and 1010. Applying the & operator to these values would result in 1000, because the fourth bit from the right is the only position in which both values have a 1.

So consider (n&8)/8. In binary, 8 is 00001000. So if you have some other value 'n', then n&8 will result in 00000000 if the fourth bit of n is zero, or 00001000 if the fourth bit of n is one. Dividing this by 8 results in either 0 or 1 respectively -- which tells you what the fourth bit of n is.

"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 43392
Instead of 8 try 1 << 3, so you end up with

(i & (1 << 3)) >> 3
I agree. Here's the link:
subject: How to use Bitwiae operators?
It's not a secret anymore!