• 最大的 int 型整数在二进制形式下表示为 0111 1111 1111 1111 1111 1111 1111 1111。这是一个 32 位的二进制数,其中最高位为符号位(0 表示正数),其余的位全部为 1。

  • 这个二进制数对应的十进制值为 (2^{31} - 1),即 2,147,483,647。

所以只有31位,>>30就可以取到最高位(在正数int范围内)