go语言int类型最大值
正数的补码是自己本身
负数的补码是,先取反码(首尾不反),然后+1
2. 在Go语言中
^0表示对0取反
我们假如是4位代表一个数字的话,最高位是符号位
0在计算机中用补码的形式存在是 : 0000
取反得到 :1111 (是-1在计算机中以补码的形式存在,所以^0 就是 -1)
所以 ^1 就是 1110 就是 -2
3. Go语言的最大值
a. 如果是一个无符号的数字
那么最大值就是 1111
那么就是 ^uint8(0) ,^uint16(0) ^uint32(0) ^uint64(0)
b. 如果是一个有符号的数数字
那么最大值就是 0111
那么就是 0000 取反 1111 后移一位 0111
那么就是 int8(^uint8(0) >> 1) int16(^uint16(0) >>1 )