a!^=b这个表达式不对,应该是a!=b和a=a!b不等价,!不是运算符
位异或运算符(^)属于二目运算符,拥有两个操作数。
位异或运算符的语法:操作数1 ^ 操作数2
位异或运算符可以将数值转换为二进制数后按位进行位异或运算。其运算规则时将两个二进制数的对应位的值进行比较,如果这两个对应位的值相同时,则运算结果为0,反之则为1
逻辑非运算符(!)
^前加! 则结果相反,对应位相同 结果1,反之0.
位异或赋值运算符(^=)
a^=b等价于a = a ^ b
主页里有关于这一张的笔记,C语言基础——数据运算