permaculture playing cards
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 REST with Spring (video course) this week in the Spring 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: 169

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: 45338
Instead of 8 try 1 << 3, so you end up with

(i & (1 << 3)) >> 3
It is sorta covered in the JavaRanch Style Guide.
subject: How to use Bitwiae operators?
It's not a secret anymore!