交换两个变量的值

原创 2016年06月01日 22:35:24
/*
位运算符可能会出现的笔试题目:
1. 交换两个变量的值,不准出现第三方变量。


2. 取出一个二进制数据的指定位数。要求读取该二进制数据的低4位
00000000-00000000-00010100-01001101
&   00000000-00000000-00000000-00001111
------------------------------------------
00000000-00000000-00000000-00001101
*/
class Demo10 {


public static void main(String[] args) 
{
int a = 3;
int b = 5;

/*
第一种方式: 定义第三方变量。
int temp = a;  //3 
a = b; //a = 5 
b = temp; 

方式2:相加法, 缺点: 两个int类型的数据相加,有可能会出现超出int的表示范围。

a = a+b;  // a =8
b = a-b; //b = 8 - 5 = 3
a = a-b; // a = 8 - 3 = 5

方式3: 可以使用异或。 缺点: 逻辑不清晰。
*/
a = a^b;  // a = 3^5
b = a^b;  // b = (3^5)^5 = 3
a = a^b; //  a = (5^3)^3 = 5 
System.out.println("a = "+ a+" b="+b);
}
}

相关文章推荐

02交换两个变量的值

  • 2011年05月22日 13:54
  • 193B
  • 下载

在C# 中不使用 第三方变量 来交换两个变量的值

1) 算术运算 简单来说,就是通过普通的+和-运算来实现。代码如下: int a,b; a=10;b=12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a=b+a; //...

交换两个变量的值,不使用第三个变量

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解...

java实现位运算交换两个变量的值

java实现位运算交换两个变量的值

面试---不增加变量,交换两个数值变量的值

一、加减法要想不增加变量,交换两个变量的值,可以做加减乘除运算。用对应的加减法或者乘除法都可以做到。举例:a=5;b=8。加减: a=a+b=5+8=13;b=a-b=13-8=5;a=a-b=13-...
  • will130
  • will130
  • 2015年09月22日 11:04
  • 288

C语言之交换两个整型变量的值(四种方法)

C语言中有一道题目是交换两个整型变量的值,这是一道非常简单的题目,那么一共有几种方法呢?以下是我整理的四种方法,是在MAC系统x-code环境下编译并运行成功的,以下为截图: 方法一:通过引入第三方...

不借助第三个变量交换两个变量的值

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特...

不使用临时变量交换两个变量的值(异或,加减,乘除)

使用异或交换两个变量的值 异或有一些有趣的用法,这里用异或的性质求出数组内一个唯一一个只出现一次的元素。 一般我们交换两个变量的值的时候,一般会用到一个辅助变量,当然,也有一些脚本语言如Python...

如何交换两个变量的值

四中方法:临时变量 ,算术运算,位运算,指针地址操作 1.临时变量 (简单易懂,推荐使用) temp=a;       //a,temp,b均为变量。a,b为要交换的两个变量 a=b; b=t...
  • fuxingwe
  • fuxingwe
  • 2013年03月28日 21:49
  • 18002

面试题→交换两个变量的值

面试题:交换两个变量 也许当你听到这道题的时候会暗暗的发笑,这么简单的算法题竟然拿出来作为面试题考,是不是也在怀疑这家公司的本身的能力与规模了呢。 交换两个变量:例如num1=5,num2=6→n...
  • yhc0322
  • yhc0322
  • 2011年08月11日 21:04
  • 1174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交换两个变量的值
举报原因:
原因补充:

(最多只允许输入30个字)