交换两个值的方法

交换两个值的方法

1.利用temp变量交换

temp=a;
a=b;
b=a;

2.加减法交换

b = a - b;
a = a - b;
b = a + b;

3.异或交换

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 20:37:31

交换两个值的方法的相关文章

交换两个数值的方法,注意有【坑】,闲来无事,总结一下

交换两个数值的方法 题面: 设a,b两个整数值,交换两个a,b二者的值, 例如: 设 a=1, b=2, 交换后 a=2,b=1 这几种方法,网上也说过很多,但是都没注意这几种方法的[坑],不要只顾着新奇方法,毕竟[可靠性]很重要,这里稍微记录下 方法1 最简单的方法就是加一个中间量: int c=a; a=b; b=c; 方法2 使用异或运算 xor: a = a xor b; //a=3, b=2 b = a xor b; //a=3, b=1 a = a xor b; //a=2, b=1

交换两个值,不用临时变量(C位运算)

通常我们交换两个值,都是用一个临时的变量temp,拿交换a,b的值为例,通常的做法是: temp = a; a = b; b = temp; 不过利用位运算,真的是方便很多: 假如 a = 3,b = 4.想将a和b的值互换,可以用一下赋值语句实现: a = a ^ b:        b = b ^ a:        a = a ^ b: 下面用竖式进行简单说明:(10进制化为二进制)            a = 011(^)    b = 100则    a = 111(a ^ b的结果

jni c语言使用指针交换两个值

#include <stdio.h> //创建传递指针的方法 void swap(int* pi,int*pj){ int temp=*pi; *pi=*pj; *pj=temp; } main(){ int i=5; int j=7; //之前 printf("%d i\n",i); printf("%d j\n",j); int* pi=&i; int* pj=&j; swap(pi,pj); //之后 printf("%d

java交换两个数的常见方法及效率测试

原文地址--http://blog.csdn.net/qq525099302/article/details/47294443 论两个数的交换的重要性 讨论交换两个数的方法对某些人来说无聊,但某些人很乐意探究,甚至某些面试官喜欢用这个做文章.刚出来找工作笔试的时候我也碰到与之相关的问题. 常见的两个数交换的方法 边赋值边运算 加减减交换 用中间变量交换 异或交换 下面是代码 public class Test { public static void main(String[] args) {

三种交换两个整数的方法

交换 int a, int b 1.最弱的方法 1 void swap(int &a,int &b) 2 { 3 int c = a; 4 a = b; 5 b = c; 6 } 2.不用另外开辟空间的方法 1 void swap(int &a,int &b) 2 { 3 a=a+b; 4 b=a-b; 5 a=a-b; 6 } 3.高效的位操作 1 void swap(int &a,int &b) 2 { 3 a=a ^b; 4 b =a^ b; //(=

一种不用参数交换两变量值的方法

除了最简单的三变量法外 还有一种不用参数的交换法 #include <stdio.h> int main(){ int a,b; scanf("%d%d",&a,&b); a=a+b; b=a-b; a=a-b; printf("%d %d\n",a,b); return 0;} 这种方法范围窄,只有定义了加减法的数据类型才可以使用 但只是输出交换变量 所以最简单的方法是 scanf("%d%d",&a,&am

C语言中交换两个数值的方法

//方法1    int  one = 1;    int two = 2;    int temp = 0;    temp = one;    one = two;    two = temp;    printf("one = %d\n", one);    printf("two = %d\n", two);            //方法2    int a1 = 5;    int a2 = 8;    a1 = a2 - a1;    a2 = a2

C/C++宏定义交换两个值

#define SWAP(t,a,b) do{ t c = a; \ a = b; b = c; }while(0); void main() { int a=1,b=2; SWAP(int,a,b); } 原文地址:https://www.cnblogs.com/judes/p/10230410.html

从交换两个变量值看c语言学习历程

在开始你使用这种方法 int tmp; tmp = a; a = b; b = tmp; 后来你知道了模块化编程,你知道这样是不好的,于是你开始使用函数. void swap(int *a, int *b); { int tmp; tmp = *a; *a = *b; *b =tmp; }//下面我就不写函数了 随着c语言的学习,后来你发现下面代码也能完成两变量的值交换的任 x = x +y; y = x -y; x = x -y; 后来有一天,你发现你这段代码不是总能正确工作的,因为x + y