不引进第三变量交换两个整形变量的值

C语言中我们常见的交换两个整形变量值的方法是引进一个第三变量

但有时题目限制我们引进第三变量,这时就得思考其方法

我们知道整形变量间可以做加减乘除运算,那我们是否可以对两个整形变量进行运算来交换他们的值呢,答案是肯定的,下面展示的是通过加减法运算交换两整形变量的方法

但因为int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1,INT_MIN= -2^31.C/C++中,所有超过该限值的数,都会出现溢出,若a或b的值本身在整形范围内,而a+b的值超出这个范围,那么就会出现溢出,使得这个算法不够完美,下面介绍一种通过异或操作实现两个整形变量交换的方法

*异或运算符是指: 参与运算的两个值的二进制,如果两个相应位相同,则结果为0,否则为1。即:1^0=0000001^00000000=00000001这里给出异或的几个常用结论(①.a^a=0 ②.0^a=a ③.异或符合交换律)

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记得开心一点啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值