java运算符

数学运算符
数学运算,结果为一个数值。见下表:
运算符 说明 举例
+加法1 + 2
-减法4 - 3.4
*乘法7 * 1.5
/除法3.5 / 7
%取余7 % 2
++自增3++
--自减3--
关系运算符
关系运算符,结果为一个布尔值。见下表:
运算符 说明 举例
>大于a > 4.2
>=大于等于3.4 >= b
<小于1.5 < 9
<=小于等于6 <= 1
==等于2 == 2
!=不等于2 != 2
&&true && false
||(3 > 1) || (2 == 1)
!!true
位运算符
位运算符对整数的二进制形式逐位进行逻辑运算,得到一个整数。见下表:

运算符 说明 举例
&1 & 4
|2 | 5
^异或2 ^ 3
~~5
<<左移5 << 3
>>右移6 >> 1

除法运算符  “/”。

二元运算符,具有左结合性。

参与运算的量均为整型时,结果为整型,舍去小数。如果运算量中有一个为实型,结果为双精度实型。
例如:5/2=2,1/2=0
5/2.0=2.5   
 求余运算符“%”,二元运算符,具有左结合性。参与运算的量均为整型。求余运算的结果等于两个数相除后的余数。
例如:
        5%2=1,1%2=1
5%2.0和5.0%2的结果是语法错误


  当前面的数小于后面的数时,其实求余运算可以看成  a%b=a-(int)(a/b)*b
1%2=1 
2%5=2
a % b  
如果a<b的话,这样的商为0,余数就是a    哈,这个关系表达式a%b=a-(int)(a/b)*b 又是这么解释的

先运算(a/b)然后a-(a/b的值)然后乘以b    例1. 100除以2=50  结果为整数 则取值为0 (原因就是100除以2的值是整数,不是50.…………几) 

例2.   9除以2=4.5 则还是用4乘以2=8  再用9-8 结果就是余数
转:在C语言中,-3/16,16/-3,-3%16,16%-3的值各为多少?
除号的正负取舍和一般的算数一样,符号相同为正,相异为负
求余符号的正负取舍和被除数符号相同
-3/16=0     16/-3=-5     -3%16=-3      16%-3=1
5%-2=5-(5/-2)*(-2)=5-(-2.5)*(-2)=5-5=0
进制方法
根据数的多少位来进行运算
     0    1     1    0     0  0   0       1    =97
          128  64   32  16    8  4  2     1               
  64+32+1=97
  用2进制中的所有1下的数值相加
  
  
  
[++   --]
   如果有表达式 a = i++  它等价于 a = i ; i = i + 1;
   如果有表达式 a = ++i  它等价于   i = i + 1; a = i;


   1 首先两者的区别是:前者是先赋值,然后再自增;后者是先自增,后赋值


   2 ++i和i++都是分两步完成的。因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值(可被寻址的值);i++ 的后面一步是自增,不是左值。(2的两步分解与左右值的因果关系只是我的直觉,对错还待考证)
   
   
   
【与  &】
   true  &  true  =true
   true  & false=false
   false &true=false
   false&false=false
   运算规律:&运算的两边只要有一个false,结果为false,只有两边都为true,结果才是true
   &&:
和&运算的结果一样,但是运算过程有点小区别
&:无论左边运算结果是怎么,右边都参与
&&:当左边结果是false,右边不参与运算

【非  !】
                判断事物的另一面
                 !true=false
!false=true
 【或  |】
   true | true  =true
   true  | false=true
   false |true=true
   false|false=false
   运算规律:|运算的两边只要有一个true,结果为true,只有两边都为false,结果才是false
         ||:
     和 | 运算的结果一样,但是运算过程有点小区别
|:无论左边运算结果是怎么,右边都参与
||:当左边结果是false,右边不参与运算
   
   
   
【异或】
  true^ true  =false
   true ^false=true
   false ^true=true
   false^false=false
   运算规律:^运算的两边只要有一个true,结果为true,只有两边相同,结果才是false

条件运算符
Java中也有一个条件运算符(三目运算符):
    condition ? x1 : x2
condition为一个boolean值。根据condition,取x1或x2的值。

下面是关于运算符的一个综合举例:

    
    
  1. public class Demo {
  2. public static void main(String[] args){
  3. int a=10;
  4. int b=10;
  5. int x=10;
  6. int y=21;
  7. int z=10;
  8. System.out.println("后自加 a=" + (a++));
  9. System.out.println("a的值 a=" + a);
  10. System.out.println("前自加 b=" + (++b));
  11. System.out.println("---------------------");
  12. System.out.println("说 x>y,对吗?" + (x>y));
  13. System.out.println("认为 x>y 并且 x<y,对吗?" + ( (x>y) && (x<y) ));
  14. System.out.println("认为 x>=y 或者 x==y,对吗?" + ( (x>=y) || (x==y) ));
  15. System.out.println("认为 x<y 或者 x=z,对吗?" + ( (x<y) || (x==z) ));
  16. System.out.println("---------------------");
  17. System.out.println("a&x 的结果是:" + (a&x));
  18. System.out.println("a|x 的结果是:" + (a|x));
  19. System.out.println("y^z 的结果是:" + (y^z));
  20. System.out.println("---------------------");
  21. System.out.println("a 左移2位的结果是:" + (a<<2));
  22. System.out.println("y 右移3位的结果是:" + (y>>3));
  23. }
  24. }
运行结果:
后自加 a=10
a的值 a=11
前自加 b=11
---------------------
说 x>y,对吗?false
认为 x>y 并且 x<y,对吗?false
认为 x>=y 或者 x==y,对吗?false
认为 x<y 或者 x=z,对吗?true
---------------------
a&x 的结果是:10
a|x 的结果是:11
y^z 的结果是:31
---------------------
a 左移2位的结果是:44
y 右移3位的结果是:2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值