在java中没有unsigned int的概念,java中的整型总是有符号的值。
int 类型的取值范围是-2147483648 到2147483648。就是2的31次方。因此1左移31位后超出范围,变成-2147483648,再右移31位后保持负号,变成-1.再右移过程中,被插入的高位全是0,或1。因此结果-1再右移一位还是-1.(注意-1的二进制码)