临时变量

开发中一般使用此方式

加减


第二种写法:

//3.使用加减d1=d1+d2;d2=d1-d2;d1=d1-d2;System.out.println("d1="+d1+"\td2="+d2);

异或(位运算符)

原理
^异或:相同为0,不同为1

总代码

class ExchangeNumber {public static void main(String[] args) {//交换两个变量的值//方法1:使用临时变量int num1=67;int num2=32;System.out.println("num1="+num1+"\tnum2="+num2);//num1=67 num2=32int test=num1;num1=num2;num2=test;System.out.println("num1="+num1+"\tnum2="+num2);//num1=32    num2=67//方法2:使用加减的方式交换//好处:不需要定义临时变量 //弊端:相加可能超出数据类型范围;只能适用于数值型int num3=78;int num4=22;System.out.println("num3="+num3+"\tnum2="+num4);//num3=78   num2=22num1=num3+num4;num3=num1-num3;num4=num1-num4;System.out.println("num3="+num3+"\tnum4="+num4);//num3=22    num4=78//方法3:使用位运算符号//原理:n=(m^n)^m,所以如果要交换m和n就是n=(m^n)^n【把m的值赋值给n】//弊端:只能适用于数值型//写法1int num5=33;int num6=22;System.out.println("num5="+num5+"\tnum6="+num6);//num5=33   num6=22int k=num5^num6;num5=k^num5;num6=k^num6;System.out.println("num5="+num5+"\tnum6="+num6);//num5=22  num6=33//写法2:int num7=77;int num8=88;System.out.println("num7="+num7+"\tnum8="+num8);//num7=77  num8=88num7=num7^num8;num8=num7^num8;num7=num7^num8;System.out.println("num7="+num7+"\tnum8="+num8);//num7=88 num8=77//测试int m=34;int n=90;System.out.println((m^n)^m);//90}
}

java 交换两个数的值(临时变量,加减,异或)相关推荐

  1. 【java】java 如何不使用第三个变量来交换两个数的值

    文章目录 1.概述 2.方案 2.1 算术运算 2.2 位运算 1.概述 今天是一个悲伤的一天,我的悲伤逆流成河.非常非常的悲伤.主要是有这个一个面试题.如何不使用第三个变量来交换两个数的值. 考官说 ...

  2. C语言异或交换两个数的原理解析-大厂面试题:不使用第三变量交换两个数的值

    常用操作交换两个数的值 常用的交换两个数值的方法一般是采用第三个变量,这种方法简单易懂,用代码举例 int main() {//交换两个整形变量int a = 3;int b = 5;int c = ...

  3. 不用中间变量交换两个数的值

    交换两个数的值是一件非常简单的任务,如果交换a与b,我们一般这样做: tmp = a; a = b; b = tmp; 如果不用中间变量tmp,有以下两种方法: 方法1: a=a+b; b=a-b; ...

  4. [笔试题]交换两个数不使用第三方变量 深入理解按位异或运算符

    异或运算相当与mod 2运算: 1^1 = 0, 1^0 = 1, 0^1= 1, 0 ^ 0 = 0 (1+1)%2 = 0, (1+0)%2 = 1, (0+1)%2 = 1, (0+0)%2 = ...

  5. 使用java交换两个数——CSDN博客

    /*** * @Title: test_exchange* @Description: 该方法的主要作用:交换两个数* @param 设定文件 * @return 返回类型:void * @throw ...

  6. C语言拆分一个三位数。以及交换两个数(常规法复习加指针法学习)

    给一个三位数,要求拆分出百位十位,个位.然后输出. 以前我们在水仙花那次求水仙花数 提到过经典的取法 我们再次展示一下: #include<stdio.h> int main() {int ...

  7. C语言使用函数交换两个数的值

    代码分析 下面先举两个常见的错误例子 例一 #include <stdio.h>void change(int a, int b);int main() {int a = 1;int b ...

  8. C语言交换两个数的值与形参与实参理解

    C Simple Swap Program – Assignments 通过赋值来实现交换变量 vi swap_simple0.c #include <stdio.h>int main() ...

  9. java 不用中间变量_java异或运算不使用中间变量交换两个数(Java版)详细分解...

    Java的异或运算^,这个小不点"^"就是Java的异或运算符,其特性如下:真^假=真假^真=真 假^假=假 真^真=假,它却是说明了Java异或运算的基本法则,那就是:只要两个条 ...

最新文章

  1. 敏捷开发本质 与 敏捷个人本质
  2. 【kAriOJ】离散数学春季学期编程测试 1
  3. 常用 Git 命令清单(转)
  4. zencart后台订单客户资料显示不全的原因
  5. 买房子,就该用线性回归
  6. 2017《面向对象程序设计》作业四
  7. 8. Geometric problems
  8. 半路学编程,可以成为大牛吗?
  9. 单例模式代码_设计模式之单例:程序员必知必会,举例子+代码示例,通俗易懂...
  10. python LDA实践入门学习
  11. 初学RubyOnRails的推荐书籍
  12. lambda java 排序_Java8 用Lambda表达式给List集合排序的实现
  13. 配置网络地址转换NAT技术实验
  14. 内存条的写入速度比硬盘快很多
  15. 8月国内搜索引擎市场份额:360搜索上涨至18.23%
  16. php 如何将富文本内容输出到word里面且添加页眉和页脚
  17. hpet 定时器中断 8259 linux,[OSDEV]编程高精度定时器(HPET)
  18. String转字节数组
  19. 华为MPLS L2xxx(PWE3)+静动混合多跳PW实验
  20. 专业课程解锁女性“蜕变”之秘 吕泉高维智慧实现行业新启航

热门文章

  1. php标准输出重定向,python标准输出重定向方式
  2. mysql存储引擎的区别_Mysql的两种存储引擎以及区别
  3. 一步步编写操作系统 61 任务状态段 TSS
  4. 搜索计算机硬盘的索引恢复,可以做到秒搜的神器everything,你可知对硬盘到底有多大伤害...
  5. php实现把es6转为es5,如何将ES6代码转化为ES5?
  6. linux ssh非交互脚本,sshpass实现shell脚本非交互密码验证
  7. linux双ip备份,LINUX系统的双网卡双IP(双链路)实现方式
  8. 【机器学习】 - keras中的模型可视化plot_model模块(含依赖包pydot和graphviz的详细安装过程与注意事项)
  9. ACM 题目分类POJ(自用,精)
  10. 一道水的不能再水的题目