uint uint类型溢出 func main() { var a uint8 = 1 var b uint8 = 2 fmt.Println(a - b) } 在计算机中数字都是用补码进行表示,而且将加减法都转换为了加法运算,那么1和2对应的补码为 00000001 00000010 那么将1-2就转换为1+(-2)的问题,对应的补码就转为 00000001 11111110 以上两个数字的补码相加结果为 11111111 而且uint8是无符号的整数,那么a-b就会表示为当前uint8的最大值。