title: Difference between some operators "|", "^", "&", "&^". Golang
body: <p>Recently I read golang specification and faced with some interesting operators:</p>
  
  <pre><code>&amp;    bitwise AND            integers
  |    bitwise OR             integers
  ^    bitwise XOR            integers
  &amp;^   bit clear (AND NOT)    integers
  </code></pre>
  
  <p>I've tried to play with it, but the only one I have understood is that "|" add integers and "+" operator additionally work with floats, strings etc.</p>
  
  <p>What they are used for in practice? Could anyone give some explanation about these 4 operators above?</p>