虫虫技术在线--技术决定出路

当前位置: 首页 > 编程 > Java >

Java 语法介绍(二):运算符

时间:2010-02-19 14:31来源:未知 作者:admin 点击:
1:优先级 优先级是指同一式子中多个运算符被执行和次序,同一级里的操作符具有相同的优先级,相同优先级得操作符号相遇是,根据结合性决定运算次序,下面从高到低的优先级列

  1:优先级

  优先级是指同一式子中多个运算符被执行和次序,同一级里的操作符具有相同的优先级,相同优先级得操作符号相遇是,根据结合性决定运算次序,下面从高到低的优先级列出了运算符。同一行中的运算符优先级相同。

  .  []  ()   结合性从左到右

  ++  --  !  ~   结合性从左到右

  *  /  %   结合性从左到右

  +  -   结合性从左到右

  <<  >>  >>>   结合性从左到右

  <  >  <=  >=   结合性从左到右

  ==  !=   结合性从左到右

  &   结合性从左到右

  ^   结合性从左到右

  &&   结合性从左到右

  ||   结合性从左到右

  ?:   结合性从右到左

  =   结合性从右到左

  例如对于表达式:a=b+c*d/(c^d),因为括号优先级最高,所以先计算c^d,接着是c*d,然后除以c^d,最后,把上述结果与b的和存储到变量a中。

  2:整型运算符

  整型运算符按操作数的多少可分为一元和二元两类,一元运算符一次对一个变量进行操作,二元运算符一次对两个变量进行操作。对于运算来说,如果有一个变量或操作数是长整型的,那么结果就肯定是长整型的,否则即使操作数还没有确定是字节型、短整型或字符型,运算结果都是整型,下表是一元运算符。

  运算符 实际操作 例子

  -   改变整型数符号   -i

  ~   位运算:非   ~i

  ++   加1   i++

  --   减1   i--

  注:一元取反运算符(-)用来改变整数的正负号,逐位求反把所变量所有是1的位变成0,是0的位变成1,加加和减减(++,--)把变量的值加1或减1。

 以下是一个具体例子:

    int i=0;
   int j=1;
   for (i=1;i<10;i++)
   {
   j--;
   System.out.println(i+""+j+"");
   }

  一元运算符执行的方式是改变它们所作用的变量的值,对一元取反和逐位求反来说,变量的值并不改变,而对加和减运算(++,--)来说,就量的值被改变了,例如:

      int i=10,j=10,k=10,l=10;
     System.out.println(i+""+j+""+k+""+l+"");
     j++;
     i--;
     ~k;
     -l;
     System.out.println(i+""+j+""+k+""+l+"");

  注意:j和i被改变并打印出它们的新值,可是k和l仍然为原来的数值,当在复合表达式中使用一元取反和逐位求余运算时,你实际上是在用一个临时存贮操作数的新值。

  ++和--既是前置运算符也是后置运算符,这就是说,它们既可以放在操作数前面(++x),也可以放在后面(x++),如果它们被用在复合语句中如:

  i=x++; 或 i=++x;

  那么第一个语句中x把值赋给i以后再加1,而第二个语句先把x加1,再把新的x值赋给i。

  整型运算符的第二种类型是二元运算符,这种运算并不改变操作数的值,而是返回一个必须赋给变量的值,下表列出了二元运算符。

  运算符 实际操作 例子

  +   加运算   a+b

  -   减运算   a-b

  *   乘运算   a*b

  /   除运算   a/b

  %   取模运算   a%b

  &   与运算   a&b

  |   或运算   a|b

  ^   异或运算   a^b

  <<   左移   a<<b

  >>   右移   a>>b

  >>>   右移   a>>>b

  注意:>>与>>>的基本功能都是右移,但>>是用符号位来填充右移后所留下的空位,而>>>则是用零来填充右移后所留下的空位。

  还有一类运算,它们形如:j-=i,这里-=是二元运算-和赋值运算=的复合运算,它等价于j=j-i,这种复合方式适用于所有的二元运算符。

  这里有几点关于整型运算进一步说明,首先,整数除法向靠近0的方向取整;其次,如果你除以0或者对0取模,程序就会在运行时被强行中止,如果你的运算结果超出最小极限,或者说是下溢,结果将为0,如果超出了最大极限,就将会导致结果的回绕。(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容