正数的补码是本身自己ui
负数的补码是,先取反码(首尾不反),而后+1blog
2. 在Go语言中im
^0表示对0取反db
咱们假如是4位表明一个数字的话,最高位是符号位img
0在计算机中用补码的形式存在是 : 0000计算机
取反获得 :1111 (是-1在计算机中以补码的形式存在,因此^0 就是 -1)语言
因此 ^1 就是 1110 就是 -2co
3. Go语言的最大值数字
a. 若是是一个无符号的数字ps
那么最大值就是 1111
那么就是 ^uint8(0) ,^uint16(0) ^uint32(0) ^uint64(0)
b. 若是是一个有符号的数数字
那么最大值就是 0111
那么就是 0000 取反 1111 后移一位 0111
那么就是 int8(^uint8(0) >> 1) int16(^uint16(0) >>1 )