加粗样式@[TOC](C# 交换变量(数值交换))
一. 中间变量(经常用方法)
- 通过中间变量实现
int a, b, temp; //声明变量
a = 10;
b = 5;
temp = a; //temp = 10,a = 10,b = 5
a = b; //temp = 10,a = 5,b = 5
b = temp; //temp = 10,a = 5,b = 10
这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。
二.算术运算
int n1 = 10;
int n2 = 20;
n1 = n1 - n2; //n1 -= n2;(简化) //n1=-10,n2=20
n2 = n1 + n2; //n2 += n1;(简化) //n1=-10,n2=10
n1 = n2 - n1; //n1=20,n2=10
n1 = 10;
n2 = 20;
n1 = n1 + n2;//n1 += n2;(简化) //n1=30,n2=20
n2 = n1 - n2; //n1=30,n2=10
n1 = n1-n2;//n1 -= n2;(简化) //n1=20,n2=10
这种方法表面看起来简单,但是却不容易想到,现在说一说它的原理:把n1、n2看做是数轴上的两点,围绕两点间的距离来进行计算。
三.位运算
- 通过异或运算来实现两个变量值的交换
n1 = 10;
n2 = 20;
n1 = n1 ^ n2;
n2 = n1 ^ n2;
n1 = n2 ^ n1;
异或的意思即是相同为0,不同为1,通过异或运算能够是数据中的某些位翻转,其中一个数与任意一个给定的值连续异或两次,值不变,这就是位运算的原理。