title: Explanation of Bitwise NOT Operator
body: <p>Why is it that the bitwise NOT operator (<code>~</code> in most languages) converts the following values like so:</p>
  
  <p><code>-2 -&gt; 1</code><br>
  <code>-1 -&gt; 0</code><br>
  <code>0 -&gt; -1</code><br>
  <code>1 -&gt; -2</code>  </p>
  
  <p>Shouldn't <code>-2</code> convert to <code>2</code>, <code>1</code> convert to <code>-1</code>, etc.?</p>