a^b意思是a,b的二进制数按位异或,同一位上相同为0,不同为1,;<<是左移运算符,将a<<b就是将a的二进制数向左移动b位高位舍弃低位补0
'^'在C语言中表示按位异或将a,b两个值转化为二进制数然后对每一位做如下运算:0^0 = 00^1 = 11^0 = 11^1 = 0
'^'
a = 3,二进制为 11b = 6,二进制是110,<<2 之后变成11000a^b = 11 ^ 11000 = 11011