< prev index next >
src/java.base/share/classes/java/lang/Integer.java
Print this page
rev 49267 : [mq]: 8199843-Optimize-Integer-Long-highestOneBit
@@ -1572,17 +1572,11 @@
* of the highest-order one-bit in the specified value, or zero if
* the specified value is itself equal to zero.
* @since 1.5
*/
public static int highestOneBit(int i) {
- // HD, Figure 3-1
- i |= (i >> 1);
- i |= (i >> 2);
- i |= (i >> 4);
- i |= (i >> 8);
- i |= (i >> 16);
- return i - (i >>> 1);
+ return i == 0 ? 0 : MIN_VALUE >>> numberOfLeadingZeros(i);
}
/**
* Returns an {@code int} value with at most a single one-bit, in the
* position of the lowest-order ("rightmost") one-bit in the specified
< prev index next >