Why does Go use ^ rather than ~ for unary bitwise-not?
<p>Most programming languages use <code>~</code> to represent a unary bitwise-not operation. Go, by contrast, uses <code>^</code>:</p>

<pre><code>fmt.Println(^1)  // Prints -2
</code></pre>

<p>Why did the Go designers decide to break with convention here?</p>