只用两个变量交换值、杂记

第一种方法:

1 int a = 3;
2 int b = 5;
3 a = a + b;
4 b = a - b;
5 a = a - b;

缺点:a和b是很大的数的话容易溢出。

第二种方法:

int a = 3;
int b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;

"^"是异或运算,这样就不会有溢出的问题了。

00000011 ^ 00000101 等于 00000110

00000110 ^ 00000101 等于 00000011

1、string string += "asd";
java编译器会new一个stringbuffer对象出来,把string转为stringbuffer再调用append()方法加上"asd"。再tostring转换为string类型
2、this就是取得当前调用方法的对象
3、Random random = new Random(peed);peed是种子,不同种子产生的随机数不同,相同种子在相同的随机次数时产生的随机数相同,
Math.random();就是调用了Random的方法。

时间: 2024-12-06 18:02:25

只用两个变量交换值、杂记的相关文章

两个变量交换值的方法

使用中间变量 int n1=10, n2=20; int tmp = n1; n1 = n2; n2 = tmp; Console.WriteLine("n1={0},n2={1}", n1, n2); Console.ReadKey(); 2.加减法 int n1 = 10, n2 = 20; n1 = n1 + n2; n2=n1-n2; n1 = n1 - n2; Console.WriteLine("n1={0},n2={1}", n1, n2); Cons

两个变量交换值的几种方法

交换两个变量值得方法总结了一下使用中间变量   int n1=11, n2=10; int tmp = n1; n1 = n2; n2 = tmp; Printf("n1=%d,n2=%d", n1, n2); return 0;  加减法 int n1 = 11, n2 = 10; n1 = n1 + n2; n2=n1-n2; n1 = n1 - n2; Printf("n1=%d,n2=%d", n1, n2); return 0;  堆栈 int n1 =

黑马程序员-C语言基础:两个变量交换值的方法

学习任何语言基础时,两个数值得交换是必须掌握的,下面简绍3中方式(c语言) 方法一:利用数学的计算技巧 1 #include <stdio.h> 2 int main() 3 { 4 5 int a =10, b = 20; 6 7 printf("交换前a=%d, b=%d\n", a, b); 8 9 a = a - b; 10 b = a + b; 11 a = b - a; 12 13 printf("交换后a=%d, b=%d\n", a, b

Java 两个变量交换值

package test; public class Test {    public static void main(String[] args) {        int a, b;        a = 10;        b = 12;        System.out.println(a + "  " + b); /*         * 借助第三方变量 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.         * 在实际软件开发

JavaScript两个变量的值交换的多种方式

前言 该文是在看别人博客的时候发现的,很有趣的一篇文章,这里摘录到自己的简书中,供给各位读者学习本文主要描述,如何不使用中间值,将两个变量的值进行交换.前三种只适用于number类型的数值交换,第四和第五种适合其他类型. 简书原文 https://www.jianshu.com/p/64a503c762e9 一.普通做法 普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存.这样的做法直观,易懂.但是,会增加内存的使用. var a = 1, b = 2, tmp; tmp = a;

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

交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换. 下面给出几种不使用第三个变量的办法: 1.利用运算交换两个变量值 a = b - a; b = b - a; a = b + a; 2.位运算 通过异或运算来交换值 a=a^b; b=a^b; a=a^b; 3.交换指针地址

两个变量交换的四种方法

对于两种变量的交换,我发现四种方法,下面我用Java来演示一下. 1.利用第三个变量交换数值,简单的方法. class TestEV //创建一个类 { public static void main(String[]args) { int x =5,y=10; //定义两个变量 int temp = x; //定义第三临时变量temp并提取x值 x = y; //把y的值赋给x y = temp; //然后把临时变量temp值赋给y System.out.println("x="+x

不用新的变量,交换两个变量的值。

不用新的变量,交换两个变量的值.比如有2个变量a , b ,我们希望交换他们的值. 下面介绍两种不同的解法: 第一种:基于加减法 a = a + b ;   //先让a等于和 b = a - b ;  //和减去原来b的值得到原来a的值,赋值给b a = a - b : //和减去改变后b的值(原来a的值)得到原来b的值,赋值给a 第二种:基于异或运算 a = a ^ b  // 先a异或上b,赋值给a b = a ^ b  // a异或上b,消去b的影响得到原来的a,赋值给b a = a ^

(转)交换两个变量的值,不使用第三个变量的四种法方

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法). 上面的算法最大的缺点就是需要借助一个临时变量.那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用