C语言不创建中间变量交换2个数

使用异或实现;

‌C语言中的异或运算‌符合以下规律,

‌ 交换律‌:即a ^ b = b ^ a。

‌ 结合律‌:(a ^ b) ^ c = a ^ (b ^ c)。

‌ 自反性‌:对于任意操作数a,有a ^ a = 0。

‌ 零元素‌:对于任意操作数a,有a ^ 0 = a。

‌ 唯一性‌:对于任意操作数a,有a ^ a = 0和a ^ 0 = a。

可利用实现不创建中间变量交换2个数;

cpp 复制代码
void CYhswpView::OnDraw(CDC* pDC)
{
	CYhswpDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CString str1;

	int a = 99, b = 33;
	str1.Format("a=%d,  b=%d", a, b);
	pDC->TextOut(30, 30, str1);

	a = a ^ b;
	b = b ^ a;//b=b^ a^b=a
	a = a ^ b;//a=a^ a^b=b

	str1.Format("a=%d,  b=%d", a, b);
	pDC->TextOut(30, 90, str1);

}
相关推荐
D_FW1 天前
数据结构第六章:图
数据结构·算法
Ka1Yan1 天前
[链表] - 代码随想录 707. 设计链表
数据结构·算法·链表
scx201310041 天前
20260112树状数组总结
数据结构·c++·算法·树状数组
宵时待雨1 天前
数据结构(初阶)笔记归纳3:顺序表的应用
c语言·开发语言·数据结构·笔记·算法
无限进步_1 天前
【C语言&数据结构】二叉树遍历:从前序构建到中序输出
c语言·开发语言·数据结构·c++·算法·github·visual studio
菜鸟233号1 天前
力扣518 零钱兑换II java实现
java·数据结构·算法·leetcode·动态规划
鱼跃鹰飞1 天前
面试题:解释一下什么是全字段排序和rowid排序
数据结构·数据库·mysql
Ka1Yan2 天前
[链表] - 代码随想录 206. 反转链表
数据结构·链表
学嵌入式的小杨同学2 天前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
良木生香2 天前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++