title: Are the results of bitwise operations on signed integers defined?
body: <p>I know that the behavior of <code>&gt;&gt;</code> on signed integer can be implementation dependent (specifically, when the left operand is negative).</p>
  
  <p>What about the others: <code>~</code>, <code>&gt;&gt;</code>, <code>&amp;</code>, <code>^</code>, <code>|</code>?
  When their operands are signed integers of built-in type (<code>short</code>, <code>int</code>, <code>long</code>, <code>long long</code>), are the results guaranteed to be the same (in terms of bit content) as if their type is unsigned?</p>