1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ^0,按位取反,根据数据类型返回值不同 int:返回-1 uint根据位数不同结果不同,unit默认64位 ui := ^uint8(0) 结果为255,8位00000000,取反结果11111111,相当于2^8-1 ui := ^uint16(0) = 65535 = 2^16-1
int类型,负数使用正数的按位取反后+1,再按位取反 简单的算法 ^int(x) = -(x+1) ^int8(-16) 获取16的正数 00010000 按位取反+1 11110000 按位取反 00001111 = 15
正数使用按位取反,获取负数,负数的计算需要按位取反+1 ^int8(16) 获取二进制 00010000 按位取反 11101111 //1开头代表负数 计算方式 按位取反+1 按位取反+1 00010001 = -17
获取uint最大值 ^uint(0)
|