在
java.util.DualPivotQuicksort
中,出现了以下代码行:// Inexpensive approximation of length / 7
int seventh = (length >> 3) + (length >> 6) + 1;
变量length
是一个大于或等于47的int
。
我熟悉有符号右移操作符的工作方式。但我不知道为什么这些特定的操作会导致除以7的近似值。请有人解释一下吗?