for(i=0;i<4;i++){
  num = num << 1;
  System.out.println(Integer.toHexString(num));
}

解决方案 »

  1.   

    0x0f 或0X0f  0x/0X 代表这个数是16进制数
    num << 1 表示按位左移1位二进制位
      

  2.   

    public static void main(String[] args) {
            int num = 0xFFFFFFE;
            System.out.println(Integer.toBinaryString(num));
            for(int i=0;i<4;i++){
                num = num << 1;
                System.out.println(Integer.toBinaryString(num));
            }
            System.out.println(Integer.toBinaryString(Integer.MAX_VALUE));        System.out.println(Integer.toBinaryString(-32));
            System.out.println(Integer.toBinaryString(32));
        }
      

  3.   

    我也Up一下我也Up两下!!!
    ^@^
      

  4.   

    java中int型是32置,所以是00001111111111111111111111111110,然后左移一位是00011111111111111111111111111100,即11111111111111111111111111100,十进制是536870908;
    再左移一位是00111111111111111111111111111000,
    即111111111111111111111111111000,十进制是1073741816
    再左移一位是01111111111111111111111111110000,
    即1111111111111111111111111110000,十进制是2147483632,
    再左移一位是11111111111111111111111111100000,第一位是1,所以是负数,其值是取反加1再取负,即取反得00000000000000000000000000011111(31)加1得32,取负后即-32。
      

  5.   

    0x0FFFFFFE
    进行四次<<1操作每次的结果是0x1FFFFFFC
    0x3FFFFFF8
    0x7FFFFFF0
    0xFFFFFFE0//这步结果益处,只保留了后面的计算机内用补码进行运算
    把0xFFFFFFE0转换成十进制
    因为在这里int是32位的,就是-32了
    如果是64位的,那就不是-32了
      

  6.   

    第一次变为0x1FFFFFFc
    为什么是这个样子呢?