C语言中二进制^运算符(i ^ j)的作用是什么?
C语言中
(i ^ j)的含义解释 在C语言里,^是按位异或运算符,和你猜测的位移操作(位移是<<左移、>>右移)完全不同,它的作用是对两个整数的二进制位进行逐位异或运算。
运算规则
对两个数的每一个对应二进制位执行如下操作:
- 如果两个位相同(都是0或都是1),结果位为
0 - 如果两个位不同(一个0一个1),结果位为
1
示例
比如i = 3(二进制011),j = 5(二进制101):
011 ^ 101 ------ 110 // 对应十进制的6
所以3 ^ 5的结果是6。
常见实用场景
- 无需临时变量交换两个整数:
i = i ^ j; j = i ^ j; i = i ^ j; - 快速判断两个整数是否相等:若
i ^ j == 0,则i和j的值相等 - 翻转某个数的指定二进制位(比如和一个特定掩码异或)
内容的提问来源于stack exchange,提问作者Aidan Howard
相关产品推荐
相关产品推荐

