title: What's the absolute minimum a programmer should know about binary numbers and arithmetic?
body: <p>Although I know the basic concepts of binary representation, I have never really written any code that uses binary arithmetic and operations.</p>
  
  <p>I want to know</p>
  
  <ul>
  <li><p>What are the basic concepts any
  programmer should know about binary
  numbers and arithmetic ? , and</p></li>
  <li><p>In what "practical" ways can binary
  operations be used in programming. I
  have seen some "cool" uses of shift
  operators and XOR etc. but are there
  some typical problems where using binary
  operations is an obvious choice.</p></li>
  </ul>
  
  <p>Please give pointers to some good reference material. </p>