&gt; (it&#x27;s undefined for unsigned integers in C):<p>No, unsigned integer overflow is defined to wrap around in C.  Only signed integer overflow is undefined.<p>&gt; I wonder why Go doesn&#x27;t just define signed integers to be in 2&#x27;s complement representation<p>It does: &quot;The value of an n-bit integer is n bits wide and represented using two&#x27;s complement arithmetic&quot; (from <a href="https:&#x2F;&#x2F;golang.org&#x2F;ref&#x2F;spec#Numeric_types" rel="nofollow">https:&#x2F;&#x2F;golang.org&#x2F;ref&#x2F;spec#Numeric_types</a>)