Home Java Java-tips Data Expressions Bitwise Operators

Ask Questions?

View Latest Questions


 
 

Bitwise Operators
Posted on: July 26, 2006 at 12:00 AM
Bitwise operators perform logical operations on each bit position.

Bitwise Operators

  • Integers (int and long) can be considered as collections of 32 or 64 bits.
  • Bitwise operators perform logical operations on each bit position, where 1 is regarded as true and zero false.
  • Bitwise and (a & b) - Result is 1 in every bit position where both operands have a 1.
  • Bitwise or (a | b) - Result is 1 only in positions where one or both operands have a 1.
  • Bitwise xor (a ^ b)- Result is 1 in positions where the two corresponding bits are different.
  • Bitwise not (~a) - Unary operator. Result is each bit of operand inverted.
  • Shift left (a << n) - Shifts bits n positions left. Zeros added on right.
  • Shift right (a >> n) - Shifts bits n positions right. High-order bit inserted on left.
  • Shift right (a >>> n) - Shifts bits n positions right. Zeros inserted at left.
  • See Deitel&Deitel p 1117

Bitwise Operators - Exercises

  • For the following examples, note that 3 is 0000...0011, 5 is 0000...0101, and -1 is 1111...1111.
  • 3 & 5 ____________________
  • 3 | 5 ____________________
  • 3 ^ 5 ____________________
  • ~3 ____________________
  • 5 << 2 ____________________
  • 5 >> 2 ____________________
  • -1 >> 30 ____________________
  • -1 >>> 30 ____________________

Bitwise Operators - Uses

  • Efficient storage.
    • Status bits. Eg, Mouse event key mask.
    • Eg, representing Connect-Four board.
    • Packing or unpacking values into a single int/long.
  • Efficient computation
    • On some (esp old) machines, shifting is faster than multiplying or dividing by powers of two.
  • Problems
    • How could you use bit operations to test whether a number is odd?
    • How would you multiply by 256?

End

Related Tags for Bitwise Operators:
cidecollectionsormformdiffiointegerlogicoperatorscollectionoperatorbitwiseintoperaidlogpositionifforlongbitwheretoicaleachposxorintegersbiboteitzerolscanbitswiseulresultpelogicalinrmoperationsdifferentcalasmnttrsidsideososicaosiosoperationestruefalsetorssuspespcolatratioishallcollecteaandarcollectconswistwzssrdrenthav6atifegaicaicandonlyoperandsonolonl