美文网首页
a=1;b=2交换这两个值的方法?

a=1;b=2交换这两个值的方法?

作者: 凉城十月 | 来源:发表于2020-11-29 23:56 被阅读0次

共有四种方法。

1. 使用中间变量t(这是最基础的一种方法)
var t
t = a //a=1,t=1,b=2
a = b //a=2,t=1,b=2
b = t //a=2,t=1,b=1
2. 使用ES6的解构赋值

[a, b] = [b, a]
结构赋值适用于字符串、数字、布尔值和对象等,语句简短。对于大多数情况都可以优先使用这种方式。

3. 加减法

这种方法不需要使用额外的内存,因为他没有用到其他的临时变量或者是临时数组。

let a = 1;
let b = 2;

a = a + b; // a=3,b=2
b = a - b; //a=3,b=1
a = a - b; //a=2,b=1

这种方法虽然灵活,但是也有很大的局限。
1.只能是整数
2.在第一步a=a+b时要注意数字溢出(总和必须小于Number.MAX_SAFE_INTEGER)。

4. 按位XOR运算符(异或^)

这是XOR真值表。

a b a ^ b
0 0 0
1 1 0
0 1 1
1 0 1

那么使用这个我们如何交换a、b的值呢?

let a = 1; //a为001
let b = 2; //b为010
a=a^b; //001^010,a为011
b=a^b; //011^010,b为001
a=a^b; //011^001,a为010
a; //2
b; //1

按位XOR运算符只能交换整数。

相关文章

  • JavaScript交换变量方法

    javascript交换变量方法 要求,交换a和b的值。 第一种: var a = 1, b = 2, num =...

  • a=1;b=2交换这两个值的方法?

    共有四种方法。 1. 使用中间变量t(这是最基础的一种方法) 2. 使用ES6的解构赋值 [a, b] = [b,...

  • OC-1

    1.不用中间变量,用两种方法交换A和B的值 A = A+B;B = A - B;A = A - B; 2.常见的o...

  • 【基础学习】C 指针实现数字交换

    通过 temp 交换 a、b 的值。 通过把 a、b 的指针传到 swap 方法中,实现数字的交换,因为方法是传值...

  • C#语言规范(小例子)

    一、交换两个数字的值 1、普通交换 2、用方法执行交换 方法传值必须加ref 不加只是交换原来值的副本,值本身...

  • 不用临时变量交换两个数的值

    假设有a=1、b=2,用js交换两个数的值,使a=2、b=1。很简单对吧?定义一个临时变量,交换一下a、b的值就好...

  • 算法分享第3题

    题目:给定两个整数a和b,交换这两个数字,要求不引入第三个变量 如:定义a=1、b=2 交换后 a=2、b=1 思...

  • 练习题目

    1.a=1,b=2,用最简单的方法交换ab的值: 2.字符串s1='123asasd1231asd122asda7...

  • 不使用中间变量交换a,b方法

    不使用中间变量交换a,b方法 let a='a',b='b' 【1】[a,b]=[b,a];【2】a=[b,b=a...

  • 【2018年最新】iOS面试题之算法

    1、不用中间变量,用两种方法交换A和B的值// 1.中间变量void swap(int a, int b) {in...

网友评论

      本文标题:a=1;b=2交换这两个值的方法?

      本文链接:https://www.haomeiwen.com/subject/xdblwktx.html