【C语言】初学者的思考-关于操作符“^”(按位异或)

按位异或操作符^是将相对应的二进制位按相同为0,相异为1的规则取值。

0 ^ 1为1;1 ^ 1;0 ^ 0都为0。可以发现异或的取值和被异或的值规律为任意两个值得异或取值为第三个值,那么在交换两个变量值得时候可以使用异或操作符进行交换,不需要采用第三个变量就可以完成两变量交换,相对于算术方式交换也有着不怕溢出的优点。

例:

在不创建第三个变量的前提下完成两个变量的交换。

#include<stdio.h>
int main()
{
    int a = 12;
    int b = 15;
    a = a ^ b;//将a,b异或的值赋值给a。
    b = a ^ b;//a,b异或的值再与b异或赋值于b,值为a的初始值12。
    a = a ^ b;//a,b异或的值在与被重新赋值12的b异或赋值给a,a的值为15;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值