java运算符

java的运算符分为:

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 三元运算符

一、算数运算符

运算符含义例子
+求和

A=10,b=10

A+B=20

-相减A-B=0
*相乘A*B=100
/相除A/B=1
%求模(求余数)A%B=0
++自加一B++或++B等于11
--自减一B--或--B等于9

(1)++运算符

       当++在变量前

                当++在变量前,会先自加一,在做赋值运算

int x=100;
System.out.println(++x);//则输出x为101

        当++在变量后

                当++在变量后,会先做赋值运算,然后加一

int x=100;
System.out.println(x++);//则输出x为100
System.out.println(x);//则输出x为101

(2)--运算符 

        当--在变量前

                当--出现在变量前,会先自减一,在做赋值运算

int x=100;
System.out.println(--x);//则输出x为99
	

        当--在变量后

                当--出现在变量后,会先做赋值运算,在自减一

int x=100;
System.out.println(x--);//则输出x为100
System.out.println(x);//输出x为99

总结:

        前缀自增自减(++a,--a):先进行自增或自减运算,在进行表达式运算

        后缀自增自减(a++,a--):先进行表达式运算,在进行自增或自减运算

二、关系运算符

        关系运算发所有值都是布尔型的不是true就是false,不会是其它值

运算符含义
>大于
>=大于等于
<小于
<=小于等于
==等于
!=不等于

                在学习位运算符前想了解一下原码、反码、补码

        原码:是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。

        反码:如果是正数,则表示方法和原码一样,如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。

        补码:如果是正数,则表示方法和原码一样,如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)

三、位运算符

操作符描述
&-----按位与如果对应位置都为1则结果为1,否则为0
| ------按位或

如果相应位置都是0,则结果为0,否则为1

^ -----按位异或如果对应位置相同则结果为0,否则为1
~ -----取反将0变1,1变为0
<<  ----左移左操作数按位左移右操作数指定位数
>> ----右移左操作数按位右移右操作数指定位数
>>>---无符号右移左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充

                        int A=10;//10的二进制数为 00001010

                        int B=127;//127的二进制数为01111111

一、按位与(&)

        概念:两操作数同为1结果才为1其余为0

        例如:(A&B)

A=   0  0  0  0  1 0 1 0

&      ¦   ¦   ¦   ¦   ¦  ¦  ¦  ¦

b=    0  1 1  1  1 1 1 1 

———————————

        0  0  0  0  1 0 1 0

 二、按位或(|)

               概念:如果相应位置都是0,则结果为0,否则为1

例如:(A|B)

A= 0 0 0 0 1  0  1  0

|     ¦  ¦  ¦  ¦   ¦   ¦   ¦   ¦

b= 0 1 1 1  1  1  1  1 

———————————

     0 1 1 1 1 1  1 1

三、按位异或(^)

        概念:如果对应位置相同则结果为0,否则为1

        例如:(A^B)

A= 0 0 0 0 1  0  1  0

^    ¦  ¦  ¦  ¦   ¦   ¦   ¦   ¦

b= 0 1 1 1  1  1  1  1 

———————————

     0 1 1 1  0   1  0  1

四、取反(~)

         概念:将对应位0变1,1变为0

 例如:(~A)

~A= 0 0 0 0 1  0  1  0

~

___________________

        1 1 1 1 0 1 0 1

上面是内存中的保存的形式,我们在读取十进制是根据原码来读取的,而在内存中,数值都是二进制补码形式存储的,正如上面所说,正数的补码和原码一样,负数的补码得到过程:原码 转    反码 再转 补码。

负数的补码是符号位不变,其余的取反 得到反码,然后在反码的基础上+1

因为二进制在内存中都是已补码形式存储的 ,正数的补码和原码一样,负数的补码是符号位不变,其余的取反 得到反码,然后在反码的基础上+1。

原码        1 1 1 1 0 1 0 1

反码        1 0 0 0 1 0 1 0

补码        1 0 0 0 1 0 1 1

其结果为:10001011=-11(最前面的表示为符号位,1为负数,0为正数,1011=11)

 五、左位移(<<)

               按二进制形式把所有的数字向左移动对应的位数,高位移除低位的空位补零。

例如:A<<2

A<<2:

A 的原码:0 0 0 0 1 0 1 0

<<2:           0 0 1 0 1 0 0 0

结果为:40

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。

六、右位移(>>)

        概念:按二进制形式把所有的数字向右移动对应的位数,低位移出舍弃,高位的空位补

符号位,及正数补零,负数补1.

        例如:int   C=-7;

        -7的原码:1 0 0 0 0 1 1 1

        反码:          1 1 1 1 1 0 0 0

        补码:        1 1 1 1 1 0 0 1

        右移两位:1 1 1 1 1 1 1 0

        反码:        1 0 0 0 0 0 0 1

        补码:        1 0 0 0 0 0 1 0

        结果:-2

 右移一位相当于除2,右移n位相当于除以2的n次方

四、逻辑运算符

运算符含义结果
&逻辑与两边都为true,结果才为true
|逻辑或有一边为true,结果为true
逻辑非!true=false
&&短路与都为true,则为true,有一个为false便不在判断了
||短路或都为false则为false。有一个为true便不在继续判断
^异或相同则为false不同则为true

 " | "和  "|| "

int a=10;
int b=2;
//短路或(||)都为false则为false,有一个true便不在继续判断
//一个成立后面就不在判断了
boolean d=a>0||(b++)>2;
System.out.println(b);//b的值为2,因为a>0是为true所以后面的值不会在执行
//逻辑或(|)所有的都运行
boolean de=a>0|(b++)>2;
System.out.println(b);//b的值为2,因为逻辑或是不管前面的判断是否是对还是错都要往后判断
		

" && "  和  " & "

int a=10;
int b=2;
//短路与(&&)一个为false后面的不运行了
boolean as=a>12&&(b++)<3;
System.out.println(b);//b的值为2,因为a<12结果为false所以不会在执行了
//逻辑与(&),执行所有语句
boolean s=a>12&(b++)<3;
System.out.println(b);//b的值为3因为即使前面为false也要往后面执行

"  ^  "

int a=10;
int b=2;
boolean as=b>10;//false
boolean as1=a==10;//true
boolean as2=as^as1;//相同为false,不同的为true所以结果为:你猜

"  !  "

        boolean a=true;
		boolean b=false;
		System.out.println(!a);//结果为false
		System.out.println(!b);//结果为true;

五、赋值运算符

运算符运算例子
=赋值---见右边的值赋给左边的变量a=5 ~>a=5
+=

加等于

a=3,b=4

a+=b ~>a=7,b=4

-=减等于

a=3,b=4

a-=b  ~>a=-1,b=4

*=乘等于

a=3,b=4

a*=b~>a=12

/=除等于

a=3,b=4

a/=b ~>a=0

%=模等于

a=3,b=4

a%=b ~>a=3


六、三元运算符

                三元运算符又称三目运算符。

                        格式:(关系表达式)?表达式1:表达式2;

                        如果表达式成立,则运行 表达式1,反之,运行表达式2

                if后的代码块可以有多个语句,但三目运算符是不支持多个语句的

                        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值