swap交换
来源:互联网 发布:软件测试工程师jd 编辑:程序博客网 时间:2024/04/29 01:35
#include<iostream>
using namespace std;
void swap1(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void swap2(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
}
void swap3(int &a,int &b)
{
a=a^b;//*
b=a^b;//**
a=a^b;//***
}
int main()
{
int n1=1,n2=3;
swap1(n1,n2);
printf("n1=%d,n2=%d/n",n1,n2);
int n3=5,n4=8;
swap3(n3,n4);
printf("n3=%d,n4=%d/n",n3,n4);
int a=2147483647;
int b=1;
swap2(a,b);
printf("a=%d,b=%d/n",a,b);
return 0;
}
注意:在这里swap2交换溢出之所以正确,具体如下
swap2是容易产生溢出的。在swap2交换中a的补码为01111111 11111111 11111111,(*)式a+1的
补码为10000000 00000000 00000000为-2147483648,-1的补码11111111 11111111 11111111
(**)式b=a-b=10000000 00000000 00000000+11111111 11111111 11111111=01111111 11111111 11111111
=2147483647,-b的补码:10000000 00000000 00000001
(***)a=a-b=10000000 00000000 00000000+10000000 00000000 00000001=00000000 00000000 00000001=1
- swap交换
- 交换--Swap
- swap-交换两个数
- swap() 交换两个数
- swap交换函数
- Swap(内存交换空间)
- swap交换两个变量
- swap函数交换区别
- swap交换分区
- 交换算法swap
- 添加交换空间swap
- Swap交换分区概念
- 数据交换swap
- swap交换分区
- 关于交换(swap)
- 交换分区Swap
- 数组元素交换 swap
- linux 交换分区 swap
- IS_ERR()宏是什么意思
- 中断与异常
- hibernate sef4j和login4j整合
- XSS攻击原理
- 手动备份驱动
- swap交换
- 和刘峰六学网络 --- VRRP原理讲座
- 伏尔泰-法国
- C++类中的4个特殊函数 - 缺省构造函数、拷贝构造函数、拷贝赋值操作符和析构函数
- 初级时间演化
- UI Aumation简介
- 【转】Oracle 10g安装完成后的测试笔记
- 实训 Java基础知识
- 公交车上GGMM强悍对话