#java系列课程#运算符

今天来说运算符,那么什么是运算符呢?运算符都有哪些呢?


运算符是用于执行程序代码运算,是一个符号,会针对一个以上操作数项目来进行运算。其实非常容易理解,2+3,其操作数是2和3,而运算符则是“+”,当然后面有=的话,“=”也是运算符。


Java 语言中常用的运算符可分为如下几种:

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

  •  赋值运算符

  •  比较运算符

  •  逻辑运算符

  •  条件运算符

 算术运算符:


算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。


Java 中常用的算术运算符:


 

Java

的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算

符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。

 Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。



一元运算符只有+(正),-(负),++,--

其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但是结果完全不一样!


例如呢:a=1;b=a++



运行结果:a=2,b=1;


因为a++是a+1的结果赋给b


再来看另外一个例子

a=1;b=++a;


因为++a是a先自己加1,然后再把结果赋给b


运行结果:


a=2;b=2


要注意的是:自加或者自减都只能在操作变量的时候用,不能直接操作数值或者常量,比如8++,3--等都不对


当然了,真正笔试的时候不可能问你这么简单的,肯定会非常复杂的,来看一个稍微复杂一点的


public class NiuKeWang{

     public static void main(String 【】 args){

          int a=2;

          int b=1;

          int c=3;

              System.out.println(+(a++-b+++2*c--));


}



}


那么最后输出的结果应该是多少呢

2-1+2*3=7


真正笔试出的话肯定要复杂的多,所以可以多练习。


需要注意的问题:% 用来求余数,也称为”取模运算符“


来看几个例子:


5%-2=1;

-5%2=-1;

-5%(-2)=-1;

也就是说结果的符号看的是模数。


那么这种情况之下的特殊情况呢?

  • 想输出0%0,:那肯定是编译出错

  • 想输出0%0.0,:结果是NAN

  • 想输出5%0.0,结果是NAN

  • 想输出0%5.0,结果是0.0

java运算符之赋值运算符


赋值运算符用于 为变量指定变量值,java中使用=作为赋值运算符,使用赋值运算符将一个变量值赋给变量


String s="java";//为变量s赋值为java

double i=3;//为变量i赋值为3

boolean b=true;//为变量b赋值为true



还可以将一个变量赋值给另外一个变量

String str=s;//将变量s的值赋给str


Java 支持的常用赋值运算符


=

+=

-=

*=

/=

%=



比较运算符


比较运算符用于判断两个变量或常量的大小,比较运算的结果是一个布尔值。例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。


Java 中常用的比较运算符如下所示:

>

<

>=

<=

!=

==




注意!!


1、  > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型


2、  == 、 != 两边的操作数既可以是数值类型,也可以是引用类型


3、比较运算符的结果都是boolean型,只有true或者false,运算符运算符,都是产生结果的。


public class Niukewang{


    public static void main(String [] args){


          System.out.println(2>1.0);//输出应该是true

          System.out.println(3==3.0);//输出应该是true,自动提升

          System.out.println(97=='a');//输出应该是true,自动提升

          System.out.println(true==false);//输出为false



     }





}

位运算符


java支持的位运算符有如下7个:


&

|

~

^

<<

>>

>>>


|有一个为真就是真

^相同的就是真,不同就是假

~取反,0变1,1变0 就可以了

&都为真的时候才是真


看一下例子


System.out.println(2&3);//结果是2,计算的是先把两个数转成2进制,0000   0010 

               0000   0011

               0000   0010=2

    

System.out.println(2|3);//0000  0010

                          0000  0011

                          0000  0011=3


System.out.println(2^3);//0000  0010

                          0000  0011

                          0000  0001=1


这个就是这样算,先拆解在计算。


关于移位运算符



移位运算符:

>>:右移运算符,

<<:左移运算符

>>>:无符号右移运算符


来看一下

1357=00000000000000000000010101001101

-1357=1111111111111111111101010110011

1357>>5=00000000000000000000000000101010

-1357>>5=11111111111111111111111111010101

1357<<5=00000000000000001010100110100000

-1357<<5=11111111111111111101011001100000

1357>>>5=00000000000000000000000000101010

-1357<<<5=00000000000000001010100110100000


有的人可能会问负数怎么变二进制呢,要先把正数的首位0变成1,其他位是0变1,1变0,再在末尾加1


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务