第一次遇到异或的时候非常无知。 这是什么?
异或涉及二进制数。 有一点二进制基础的学生请继续看。 请先记住没有基础的互补二进制数。
0^0=0
0^1=1
1^0=1
1^1=0
举起板栗!
int x=4,y=5,z; z=x^y; z=? 的二进制数为100,5的二进制数为101
100
101
这两个数字,上下各看一个,看上边的红色字体。 结果是二进制数001,十进制数为1,因此z=1
如果二进制位数不对应呢?
举起板栗!
int x=2,y=5,z; z=x^y; z=? 的二进制数为10,5的二进制数为101,需要进行这样的转换。 把数字少的一方放在后面。
10
101
这两个数字在上下比较1对1的结果是,二进制111,十进制是7,所以z=7