<<左移算子为负值

时间:2016-09-09 12:50:14

标签: java bitwise-operators

有人可以解释以下程序的输出吗?感谢这方面的任何帮助。

以下是我的程序及其输出。

System.out.println("8<<-1 is="+(8<<-1));
System.out.println("8<<-1 is="+(String.format("%32s", Integer.toBinaryString(8<<-1)).replace(' ', '0')));
System.out.println("8<<-2 is="+(8<<-2));
System.out.println("8<<-2 is="+(String.format("%32s", Integer.toBinaryString(8<<-2)).replace(' ', '0')));
System.out.println("8<<-4 is="+(8<<-4));
System.out.println("8<<-4 is="+(String.format("%32s", Integer.toBinaryString(8<<-4)).replace(' ', '0')));

输出

8<<-1 is=0
8<<-1 is=00000000000000000000000000000000
8<<-2 is=0
8<<-2 is=00000000000000000000000000000000
8<<-4 is=-2147483648
8<<-4 is=10000000000000000000000000000000

0 个答案:

没有答案