有人可以解释以下程序的输出吗?感谢这方面的任何帮助。
以下是我的程序及其输出。
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