C语言中^与&都是位运算符,^是按位或运算,&是按位和运算。要知道,在计算机实际进行运算时,是把用户输入的数据转化成2进制进行运算的。比如1就会转化为00000001 而2会转化为00000010 ,那么a^b就相当于对这两个二进制数字中每一位都对应进行或运算。例如
00000001和00000010或运算时,两个数每一位只要有一个是1就是1,只有都为0时才为0,
因此结果为00000011 ,而这个结果与c进行位的和运算,即:对应位都为1才是1,否则为0
因此,00000011与3的二进制数00000011的和运算结果为00000011
在输出的时候计算机把二进制数转化为%d所表示的十进制数,即3输出
^是按位或运算,&是按位和运算。要知道,在计算机实际进行运算时,是把用户输入的数据转化成2进制进行运算的。比如1就会转化为00000001 而2会转化为00000010 ,那么a^b就相当于对这两个二进制数字中每一位都对应进行或运算。例如
00000001和00000010或运算时,两个数每一位只要有一个是1就是1,只有都为0时才为0,
因此结果为00000011 ,而这个结果与c进行位的和运算,即:对应位都为1才是1,否则为0
因此,00000011与3的二进制数00000011的和运算结果为00000011
在输出的时候计算机把二进制数转化为%d所表示的十进制数,即3输出
& 是 按位与,两个都是 1 的时候结果为1,否则结果为0
^ 按位异或—— 若参加运算的两个二进制位值相同则为0,否则为1;
&按位与,^按位异或