1.1111 1111 1111 1111 1111 1111 1111 0110用windows的计算器就知道了。呵呵,输入10进制的-10,然后转2进制。hoho

解决方案 »

  1.   

    3.你如果用
    System.out.println(i);
    会发现显示的是:-15
    说明你的int i = 0xFFFFFFF1; 表示的是-15java在编译器内部是用补码表示的
    并不是说要你在程序中用补码表示整数
      

  2.   

    我上面这句话说错了:java在编译器内部是用补码表示的
    并不是说要你在程序中用补码表示整数应该是:程序中是用可以补码表示正数的。0xFFFFFFF1正是 -15的补码啊int j = ~i; 表示把i按位取反。~符号是取反符号,就是把这个数的补码所有位取反:0x0000000E当然是14了
    你如果 用int jjj = -i就会显示15了。