int a = 5;
int b = 4;
int c = a++ - --b * ++a/b-- >>2%a--;
看着优先级表我都能算错  求大神分析下 
 -- ++这种符号在后面是不是可以忽略掉

解决方案 »

  1.   

    好吧,看在教主头像的份上
    第一步:计算++ --    得 6-3*7/2>>2%6
    第二步:计算*/%      得6-10>>2
    第三步:计算-        得-4>>2
    最后结果                -1
      

  2.   

    int a = 5;
    int b = 4;
    int c = a++ - --b * ++a/b-- >>2%a--;先计算
     a++   6
     --b   3
     a++   7
     b--   2
     a--   6
    再计算
       6 - 3*7/2 = -4
       2%6 = 2
    最后 -4右移两位
    具体的进制转换请看:http://blog.csdn.net/dawanganban/article/details/9770799package com.meritit.test;public class TestChart {
     public static void main(String[] args) throws Exception {
     int a = 5;
     int b = 4;
     int c = a++ - --b * ++a/b-- >>2%a--;
     System.out.println(c);
     //-4转出2进制
     System.out.println(Integer.toBinaryString(-4));
     //-1转出2进制
     System.out.println(Integer.toBinaryString(-1));
     }
    }输出结果:
    -1
    11111111111111111111111111111100
    11111111111111111111111111111111
      

  3.   


    ++ -- 在后面也计算啊? 
    肯定计算啊,i++不就是i=i+1?
      

  4.   


    ++ -- 在后面也计算啊? 
    肯定计算啊,i++不就是i=i+1?
    书上不是写着 ++在后面 表达式结束后再赋值啊    在前面是先赋值再运算  在后面是先运算再赋值