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);

}
相关推荐
fj800j1 小时前
首助记账本新增「标签管理」功能:跨分类归集项目账目,一个账本管完所有事
数据结构·经验分享·笔记·学习·分布式账本
垆边人似月.2 小时前
分割数组的最大值最小化(200分 / 二分答案 + 贪心)
数据结构·算法·排序算法
程序员清风4 小时前
排序算法:从冒泡排序到归并排序
数据结构·算法·排序算法
Ada's13 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
wanderist.17 小时前
线性筛法详解:从筛质数到欧拉函数、Möbius 函数与约数函数
java·数据结构·算法
All for pursuit.17 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
程序员清风19 小时前
哈希表:从键值映射到高效查找
数据结构·哈希算法·散列表
Logic1011 天前
C语言/数据结构字符串题解:最短循环节——找出能重复构成原串的最短基础子串
c语言·数据结构·字符串·枚举·时间复杂度·算法题·kmp优化
垆边人似月.1 天前
城市连通性(200分 / 并查集)
数据结构·算法·图论
Gust of wind1 天前
串与KMP模式匹配:存储结构、基本操作、next数组手算
c语言·数据结构·后端·算法