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

}

}

编译运行:

dae99da98608d6cbef82eb40c46f8650.png

自增与自减

++  自增

--  自减

例子:

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);

}

}

编译运行:

7536fa332c1ee5c5ab79a9ba03b4a9e2.png

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(推荐)

}

}

编译运行:

f67b2223edf1002705d03cc5231a1929.png

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

>

<

>=

<=

==  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>>1  a=10

a=-20

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

a>>1  a=-10

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

后缀

() [] . (点操作符)

左到右

一元

expr++ expr--

从左到右

一元

++expr --expr + - ~ !

从右到左

乘性

* /%

左到右

加性

+ -

左到右

移位

>> >>>  <<

左到右

关系

> >= < <=

左到右

相等

==  !=

左到右

按位与

左到右

按位异或

^

左到右

按位或

|

左到右

逻辑与

&&

左到右

逻辑或

| |

左到右

条件

?:

从右到左

赋值

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

从右到左

逗号

左到右

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值