i=100 二进制是:1010
100 十进制是:4
i<<100 将运算符左边的运算对象向左移动4位在低位补0,得到:10100000=160

解决方案 »

  1.   

    i == i<<32
    如果i是int的话
      

  2.   

    自己写个小程序很容易找出答案的,对于int,<<是移动位数除以32的余数那么多位。这里是100%32 = 4public class TestBit {
      public static void main(String[] args) {
        int i = 10;
        System.out.println(showBinary(i));
        System.out.println(showBinary(i<<100));
        System.out.println(showBinary(i<<32));
        System.out.println(showBinary(i<<33));
      }
      static String showBinary(int a) {
        StringBuffer sb = new StringBuffer();
        String s = Integer.toBinaryString(a);    int loopTime = 32 - s.length();
        for (int i = 0; i < loopTime; i++) {
          sb.append("0");
        }
        sb.append(s);
        return sb.toString();
      }
    }