100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java 位运算符赋值_java-运算符(算术 赋值 = 关系 逻辑 三元 位运算符)...

java 位运算符赋值_java-运算符(算术 赋值 = 关系 逻辑 三元 位运算符)...

时间:2020-12-30 13:00:40

相关推荐

java 位运算符赋值_java-运算符(算术 赋值 = 关系 逻辑 三元 位运算符)...

基本运算符与位运算符

算术运算符:两个操作数进行计算

+加

- 减

*乘

/除(取整)

%取余

例子:

class ArrayTest{

public static void main(String[] args){

int num1 = 12;

int num2 = 5;

int num3 = num1 / num2;

double num4 = num1 / num2 + 0.0;

double num5 = (num1 + 0.0) / (num2 + 0.0);

double num6 = num1 / (num2 + 0.0);

System.out.println("num3="+num3);//2

System.out.println("num4="+num4);//2.0

System.out.println("num5="+num5);//2.4

System.out.println("num6="+num6);//2.4

//%取余运算

int m1 = 12;

int n1 = 5;

System.out.println("m1%n1="+m1%n1);//2

int m2 = -12;

int n2 = 5;

System.out.println("m2%n2="+m2%n2);//-2

int m3 = 12;

int n3 = -5;

System.out.println("m3%n3="+m3%n3);//2

int m4 = -12;

int n4 = -5;

System.out.println("m4%n4="+m4%n4);//-2

}

}

编译运行:

自增与自减

++ 自增

--自减

例子:

class ArrayTest{

public static void main(String[] args){

//前++

int a1 = 10;

int b1 = ++a1;//a1自加1后赋值给b1

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

//后++

int a2 = 10;

int b2 = a2++;//a2赋值给b2后再自加1

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

//前--

int a3 = 10;

int b3 = --a3;//a3自减1后赋值给b3

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

//后--

int a4 = 10;

int b4 = a4--;//a4赋值给b4后再自减1

System.out.println("a4="+a4+" "+"b4="+b4);

}

}

编译运行:

a++比++a在运行速度上快一点,a--比--a在行速度上快一点。

赋值运算符:

=

扩展的赋值运算符:+=*=-=/=%=

例子:

class ArrayTest1{

public static void main(String[] args){

//=

int i1 = 10;

int j1 = 10;

//连续赋值

int i2,j2;

i2 = j2 = 10;

int i3 = 10,j3 = 10;

//*****************

int num1 = 10;

num1 +=2;//num1 = num1 + 2;

System.out.println(num1);

int num2 = 12;

num2 %= 5;//num2 = num2 % 5;

System.out.println(num2);

short s1 = 10;

//s1 = s1 + 2;编译失败 左边short 右边至少得用int接收

s1 += 2;//不会改变变量本身的数值类型

System.out.println(s1);

//开发中,如果希望变量实现+2的操作,有几种方法?(int num = 10)

//1.num = num + 2

//2.num +=2(推荐)

}

}

编译运行:

关系运算符(会形成布尔表达式)--比较运算符

>

<

>=

<=

== a=b赋值 a==b表判断

!=

逻辑运算符

短路逻辑运算符:

当使用与逻辑运算符(短路与)时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

当使用与逻辑运算符(短路或)时,在两个操作数只要有一个为true时,结果就为true,但是当得到第一个操作为true时,其结果就必定是true,这时候就不会再判断第二个操作了。

&& 短路与 ,与(并且), 都为真才为真

||短路或,或(或者),只要有一个为真就为真

!逻辑非(取反), 真变假,假变真

三元运算符(可以嵌套使用)

? : 布尔表达式?结果1:结果2 布尔表达式为真(true),获得结果1,否则为结果2

凡是有三元运算符的地方,都可以改写成if-else

位运算符:

&(非短路) 逻辑与,a&b按二进制求与

|(非短路)逻辑或,a|b按二进制求或

^逻辑异或,a^b异或 相同时为0,不同时为1 任何一个数与0异或,还是原来的那个数

~按位置求反 按二进制求反 1变0,0变1

a=27 16+8+2+1 00011011

~a=-27 11100101 符号位甩出去, 0011011 -27

移位运算符

a=26

a=a>>1右移运算符

整体往右移1位 00011010右移后 0(符号位还是原来的)0001101

a=13

结论:右移一位值为原来的一半,所以左移<

a=20

a>>>1 a=10

a>>1a=10

a=-20

a>>>1 a=2147483638(符号位丢了,0补了上去)

a>>1a=-10

运算符的优先级(在表中最上边的优先级最高,从上往下依次递减)

后缀

() [] . (点操作符)

左到右

一元

expr++ expr--

从左到右

一元

++expr --expr + - ~ !

从右到左

乘性

* /%

左到右

加性

+ -

左到右

移位

>> >>> <<

左到右

关系

> >= < <=

左到右

相等

== !=

左到右

按位与

左到右

按位异或

^

左到右

按位或

|

左到右

逻辑与

&&

左到右

逻辑或

| |

左到右

条件

?:

从右到左

赋值

= + = - = * = / =%= >> = << =&= ^ = | =

从右到左

逗号

左到右

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。