例:互换两个变量 i,j的值
因为数据有数据范围的限制,当数据过大超出数据范围的时候,就不能按如下方式互换
@Test
public void testChange(){
int i=21;
int j=22;
i=i+j;
j=i-j;
i=i-j;
System.out.println("i="+i+" j="+j);
}
正确的互换方式应该是按位运算符运算,隐性转换长二进制数进行移位,"^ 按位异或 "
@Test
public void testChange(){
int i=21;
int j=22;
i=i^j;
j=i^j;
i=i^j;
System.out.println("i="+i+" j="+j);
}
分享到:
相关推荐
在标题“两变量值互换”中提到的方法,实际上是指在不借助额外辅助变量的情况下,通过位运算来实现两个变量的值互换。这种技术在内存有限或者对效率有较高要求的场景下特别有用。 首先,我们来看传统的加法方法。...
在Java编程中,有时我们需要交换两个变量的值,但又不希望使用额外的第三个变量来辅助这个过程。这种情况下,可以利用位运算中的异或(XOR)操作符来实现两个变量的互换。本文将详细讲解如何通过异或运算在Java中不...
在Java编程语言中,有时我们需要交换两个变量的值,例如在数组排序算法或者特定的数据处理逻辑中。传统的方法是引入一个额外的临时变量来完成这个任务。然而,有一种更为巧妙且节省空间的方法,即利用位操作中的异或...
- 有时这两个变量可以互换使用,但最好根据具体需求进行配置。 - 新建变量`CATALINA_HOME`或`CATALINA_BASE`,值同样为Tomcat的安装目录。 3. **更新Path变量**: - 编辑`Path`变量,添加Tomcat的bin目录:`%...
本人上传的第一个作品,超级简单,两个整数交换的经典例子,是在一个类中实现的,给JAVA初学者一个借鉴。希望在技术上共同进步
- **题目描述**: 写出将两个整型变量中的值互换的程序。 - **答案**: ```java int a = 9, b = 5, c = 0; c = a; a = b; b = c; System.out.println("a=" + a); System.out.println("b=" + b); ``` - **解析*...
- 有多种方法可以交换两个变量的值,这里可以使用临时变量法。首先创建一个临时变量,保存一张纸牌的值,然后将另一张纸牌的值赋给原来的变量,最后将临时变量的值赋给空出的变量。例如: ```java String temp = ...
在Java编程中,有时我们需要交换两个变量的值,例如在数组排序或数据处理的过程中。本文将详细介绍三种常见的方法来实现这个目标:借助中间量、数值相加减以及位移运算。 1. **借助中间量交换** 这是最直观且易于...
当需要交换两个变量的值时,通常需要一个临时变量作为中介。例如,交换两个整数变量`num1`和`num2`的值: ```java int num1 = 19; int num2 = 89; int temp; temp = num1; num1 = num2; num2 = temp; ...
这在实际编程中可能是因为需要实现变量值的对调,例如在交换两个变量的值时。 为了实现这种互换,我们可以使用多种方法: 1. **临时变量法**:创建一个临时变量,先将其中一个变量的值存储到临时变量中,然后将另...
在传统的交换两个变量的值的方法中,我们通常会引入一个临时变量来存储其中一个值,然后将另一个值赋给第一个变量,最后将临时变量的值赋给第二个变量。但利用异或运算,我们可以避免使用额外的变量。异或运算的一个...
最近在用jsp做一个网站,其间涉及到java变量和javascript变量之间的互换,虽然网上资料众多,但是众说纷纭,并且很多都是带有误导性,做了许多尝试,终于比较清楚的搞懂了这个问题。通俗一点来讲,就是说java代码是...
首先,我们来看一下如何用异或来实现两个变量的互换,这是基于异或运算的一个重要性质:任何数与0异或都等于它本身,以及同一个数连续异或两次结果为0。以下是一个简单的Java示例: ```java public class ...
异或操作具有交换律,即`a ^ b ^ a = b ^ a ^ a = b`,所以经过三次异或操作,两个变量的值会互换。 这两个知识点是Java编程基础中的基本操作,对于初学者来说是非常重要的。理解并熟练掌握这些基础,能够为更复杂...
在Java编程语言中,交换两个数据是常见的操作,无论是在数组排序、列表操作还是其他算法中都可能遇到。本文将详细讲解两种交换两个数据的方法,并通过实例进行解析。 方法一:利用数组 数组是最基础的数据结构,...
1. 初始化两个变量,一个用于存储当前找到的最小值(初始值为正无穷大),另一个用于存储最大值(初始值为负无穷大)。 2. 遍历输入数组,对于每个元素: - 如果元素小于当前最小值,更新最小值。 - 如果元素大于...
如果当前元素大于下一个元素,两个元素的位置就会互换。`main`方法展示了如何使用这个排序器,并打印了排序前后的数组状态。 冒泡排序的时间复杂度为O(n^2),其中n是数组的长度。这使得它在处理大量数据时效率较低...
在编程中,有时我们需要交换两个变量的值,而不使用额外的临时变量。位运算符可以有效地实现这一点,下面以一个例子说明: ```java int a = 5; // 二进制:0101 int b = 10; // 二进制:1010 a = a ^ b; // a现在是...
1. 初始化两个指针,`i`指向数组的起始位置,`j`指向`i+m`(对n取模)的位置。 2. 当`i != j`时,执行以下操作: - 交换`a[i]`和`a[j]`的值。 - `i = i + 1;`,`j = j + 1;`。 3. 循环结束后,数组已循环右移m位。...
此题是交换两个整型变量`a`和`b`的值,无需额外变量。利用异或操作可以实现。缺失的代码应为: ```java a = a ^ b; b = a ^ b; a = a ^ b; ``` 异或操作的性质是:a ^ a = 0,a ^ 0 = a,所以通过异或两次,a和b的值...