JAVA基础——运算符

JAVA基础——运算符,第1张

JAVA基础——运算
JAVA运算符包括 算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,三目运算符

一:算术运算符:
    +,-,*,/,%,++,--
+ 加法运算

- 减法运算
* 乘法运算
 / 整除运算,只获取整数部分
 %  取余运算
++:自加1
    当++在前的时候,先自加1,再做赋值 *** 作,当++在后的时候,先做赋值 *** 作,再做自加1

--:自减1
    当--在前的时候,先自减1,再做赋值 *** 作,当--在后的时候,先做赋值 *** 作,再做自减1
二:赋值运算符:  = , +=, -=, *=, /=, %=
其中我们一直在使用的也是最常用的:=
+=     int a += 10;
        int a = 10;
        a += 20;
这里实际上可以看作为a的值加上了一个20再赋值给a,但是不能完全等于 a = a + 20;
为什么不能完全等于,例题。
short s=1, s = s+1;
short s=1, s += 1;
上面两个代码有没有问题,如果有,那里有问题
第一个有问题,因为变量参与运算,首先会提升数据类型,然后做运算。所以 s = s+1;s会提升到int类型然后再做加法运算,最终的结果是int类型,所以拿short类型接收会报错,所以要想成功赋值,就得强制类型转换。
第二个代码没有问题,是因为内部自动包含了强制类型转换,s+=1 ===>  s = (s的数据类型)(s+1)其余的赋值运算符同理,都是通过与自身进行加减乘除运算,再将值赋给自身。
 三:关系运算符:
     ==,!=,>,<,>=,<=

注意事项:
     1、关系运算符的表达式的结果是一个boolean类型,要么是true,要么是false
     2、==不能少写,一个=是赋值运算符,==才是关系运算符
     3、赋值的时候要注意类型问题,关系运算符表达式的结果是boolean类型,所以接收的时候只能是boolean类型的变量接收

四:

逻辑运算符:
    &,|,^,!,&&,||
逻辑运算符的两边放的是boolean类型的值,计算的结果也是一个boolean类型的值

&: 参与运算的时候,两边有false,则false,两边都做运算,即只有当两边都为ture时,才为ture。

|: 参与运算的时候,两边有true,则true,两边都做运算,即只有当两边都为ture时,才为ture。

^: 参与运算的时候,相同为false,不同为true,两边都做运算,即两边同为ture,或同为false,则为false,若一边为ture,一边为false,则为ture。

!: 将true变成false,false变成true.

&&: 短路与,结果和单个 & 结果一样,有false则false,但是执行的东西不一样,
    当&&左边的表达式结果为false的时候,结果是false,右边不执行

||: 短路或,结果和单个 | 结果一样,有true则true,但是执行的东西不一样,
    当||左边是true的时候,右边不执行,结果是true.

五:位运算符: <<,>>,>>>,&,|,^,~

位运算符:
<<: 左移,二进制左移,右边用0补齐,多出来的丢弃
>>: 右移,最左边最高位是0用0补齐,最高位是1就用1补齐,多出来的丢弃。
>>>: 无符号右移,无论左边最高是0还是1,都用0补齐,多出来的丢弃。

注意,移动的是其二进制补码,不是其二进制源码;

&,|,^,~

例用3和4作比较

3的源码为00000011

4的源码为00000100

因为3,4为正数,所以其源码反码补码相同。

&,|,^,~:运算比较用补码作比较。

& 运算:有0则0
    00000011
 &
    00000100
---------------
    00000000

结果是 : 0



| 运算:有1则1
    00000011
 |
    00000100
--------------
    00000111

结果是:7



^ 运算:相同则0,不同则1
    00000011
 ^
    00000100
--------------
    00000111

结果是:7



~ 运算:1变成0,0变成1
    00000011
~
-------------
补码:     11111100
已知补码求原码:
反码:     11111011
原码:     10000100

结果是:-4
六:三目运算符:又称之为三元运算符
        格式:(关系表达式)?表达式1:表达式2;
    如果关系表达式的结果为true,运算后的结果是表达式1;
    如果关系表达式的结果为false,运算后的结果是表达式2;

注意事项:
    1、三目运算符表达式的结果数据类型由三目运算符表达式1和表达式2中最大的数据类型决定的。
    2、关系表达式一定只能是boolean类型

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5697322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存