java中常用计算

java中常用计算

1.单目运算

2.算术运算

算术运算符: +,-,*,/,%,++,--

示例:/ 和 %

int a = 12;

int b = 5;

int c = a / b;

System.out.println(c);//结果为2

int c1 = a / b * b;

System.out.println(c1);//结果为10

double c3 = a / b;

System.out.println(c3);//结果为2.0

double c4 = a / (b + 0.0);

System.out.println(c4);//结果为2.4

double c5 = (double)a / b;

System.out.println(c5);//结果为2.4

//%取余运算

int a1 = 12;

int b1 = 5;

System.out.println("a1 % b1="+a1%b1);//结果为a1 % b1=2

int a2 = -12;

int b2 = 5;

System.out.println("a2 % b2="+a2%b2);//结果为a2 % b2=-2

int a3 = 12;

int b3 = -5;

System.out.println("a3 % b3="+a3%b3);//结果为a3 % b3=2

int a4 = -12;

int b4 = -5;

System.out.println("a4 % b4="+a4%b4);//结果为a1 % b1=-2

//结果的符号与被模数的符号相同

示例:

//(前)++:先自增1,后再运算

//(后)++:先运算,后自增1

int a = 10;

int b = ++a;//先自增1,后再运算

System.out.println("a = " + a + ",b = " + b);

int a1 = 10;

int b1 = a1++;//先运算,后自增1

System.out.println("a1 = " + a1 + ",b1 = " + b1);

//(前)--先自减1,后再运算

//(后)--先运算,后自减1

int a2 = 10;

int b2 = --a2;

System.out.println("a2 = " + a2 + ",b2 = " + b2);

int a3 = 10;

int b3 = a3--;

System.out.println("a3 = " + a3 + ",b3 = " + b3);

结果:a = 11,b = 11

a1 = 11,b1 = 10

a2 = 9,b2 = 9

a3 = 9,b3 = 10

3.关系运算

关系运算 > < >= <= != == (注意是2个等号)

关系运算结果是:布尔类型(true,false)

4.逻辑运算

与 或 非 异或

两个操作数必须是布尔类型

单与和双与的区别?

在java中都可以进行逻辑与运算,运算结果都符合真值表

但是双与(&&)是有短路作用。短路,你能确定最总逻辑运算的结果时,后面的代码将不被运行。

当符号左边为true时,二者都会执行符号右边的运算

当独好左边时false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。

示例:

boolean b =true;

b = false;

int num = 10;

if(b & (num++ > 0)) {

System.out.println("我是谁");

}else

{

System.out.println("我在哪");

}

System.out.println("num ="+num);

boolean b1 =true;

b1 = false;

int num1 = 10;

if(b && (num++ > 0)) {

System.out.println("我是谁");

}else

{

System.out.println("我在哪");

}

System.out.println("num1 ="+num1);

结果:我在哪

num =11

我在哪

num1 =10

5.什么时候应用短路逻辑运算?

空指针保护

6.逻辑运算的优先级

非运算

与运算

或运算

7.位运算符

7.1 左移操作:

(i*2的n次方),比乘以2的n次方的效率高,是一种高效率运算方式

int i=4;//0001 0000

int result=i<<2;//向左移动,右边补0

System.out.println(result==16);

7.2符号右移

向右移动,除以2的n次方

int i=-4;//1110 1111 -> 0111 0111

int result=i>>2;//符号右移:向右移动,除以2的n次方

System.out.println(result==-1);

7.3 无符号右移:

只适用于字节截取

int i=-4;

int result=i>>>16;//无符号右移:只适用于字节截取

System.out.println(result);

7.4 与运算:&

int i=4;//00000100

int j=8;//00001000

int k=i & j;

System.out.println((i & j)==0);//位运算只支持单&

7.5 或运算:|

int i=4;//00000100

int j=8;//00001000

int k=i | j;

System.out.println(k==12);

练习:

int m=12;

int n=5;

System.out.println("m & n :"+(m & n));

System.out.println("m & n :"+(m | n));

System.out.println("m & n :"+(m ^ n));

实例练习:位运算符

int num1=10;

int num2=20;

System.out.println("num1 = "+ num1 +", num2 = "+num2);

//方式一:定义临时变量

int temp = num1;

num1 = num2;

num2 =temp;

System.out.println("num1 = "+ num1 +", num2 = "+num2);

//方式二:好处:不用定义临时变量

// 弊端:相加操作可能超出存储范围;有局限性:只能适用于数值类型

num1=num1+num2;

num2=num1-num2;

num1=num1-num2;

System.out.println("num1 = "+ num1 +", num2 = "+num2);

//使用位运算符

num1 = num1 ^ num2;

num2 = num1 ^ num2;

num1 = num1 ^ num2;

System.out.println("num1 = "+ num1 +", num2 = "+num2);

相关推荐

卓怎么读
365的账户被关闭

卓怎么读

📅 09-14 👁️ 5816