numberOfLeadingZeros static method

int numberOfLeadingZeros(
  1. int i
)

Implementation

static int numberOfLeadingZeros(int i) {
  if (i == 0) return 32;
  int n = 1;
  if (i >> 16 == 0) {
    n += 16;
    i <<= 16;
  }
  if (i >> 24 == 0) {
    n += 8;
    i <<= 8;
  }
  if (i >> 28 == 0) {
    n += 4;
    i <<= 4;
  }
  if (i >> 30 == 0) {
    n += 2;
    i <<= 2;
  }
  n -= i >> 31;
  return n;
}