java基础之运算符

时间:2023-02-15 16:54:26

java运算符分三种 逻辑运算符 算数运算符 位运算符

 

一、算数运算符有如下

+  加  - 减 * 乘  /  除 % 取余数(模) ++ 自增 -- 自减

单独说一下 自增 ++  自减也一样 E++  相当于 E= E+1; 

E++ 先计算在赋值要在E++语句结束之后才会自增1, ++E 先赋值在计算程序读到此处的时候E已经自增1;

例如:int E = 1; E = E++ + E++; 和 E =  E++ + ++E ;这里两个例子

            int E = 1 ; E = E++ (此时E++ 还是1)+(此时E经过前面++之后已经为2) E++(此时E++还是为2);  所以计算结果 E的值为 E = 1+2; 就是3

            int E = 1; E =  E++ (此时E++ 还是1)+(此时E经过前面++之后已经为2)++E(此时++E的值就为3); 所以计算结果 E的值为 E = 1+ 3;就是4

 

二、逻辑运算符有如下

< 小于 > 大于  <= 小于等于 >= 大于等于 == 等于  != 不等 &, && 并且(and)  |, || 或者(or) ! 非(not)

&,&&  运算规则  1&0 = 0 ;1&1 = 1;0&0 = 0;要两边同时为真才为真 二进制中 1表示真 0 表示假

|,||     运算规则 1|0 = 1;1|1 = 1;0|0 =0;只要一边为真则为真

单独说一下 &,&& 与    |,|| 也同理

 & 与 &&的区别在于后者是短路运算  就是 当前面一个条件已经能够确定结果的时候,后面的条件就不会参与运算

例如:int x = 1;int y =1;

if(x++ ==2 && y++ =1){....}  

此例子前一个判断x++ 的值为1 不等于2  已经为false  由于是&& 已经能判断结果为false

 则后面的条件语句 y++ =1 就不会在参与运算  所以此语句结束时  x的值为2 ,y 的值为1

 

三、位运算符有如下

& 与  | 或  ^ 异或 >>右移  << 左移  >>>无符号右移

5>>2  表示5的二进制向左移动两位 地位用0 补

0000 0101   左移2位就是   0001 0100  结果为 20

位运算符为运算符其实就是二进制的逻辑运算

例如 5 & 3    要先把 5 和 3 转化成二进制

0000 0101    5的二进制表现形式

0000 0011    3的二进制表现形式

&---------------------根据前面说过的 &的逻辑运算规则结果如下

0000 0001   转化成10进制的结果就为 1

^ 的运算规则为  1 ^ 0 = 1; 1^1 = 0; 0^0 = 0; 只有相对应的一对二进制数不同是 结果为 1 

例如

0000 0101    5的二进制表现形式

0000 0011    3的二进制表现形式

^ --------------------

0000 0110   结果为6