code: long nextSetBit(long index) {
  		// Depends on the ghost bits being clear!
  		assert index >= 0 && index < numBits : "index=" + index + ", numBits=" + numBits;
  		int i = (int) (index >> 6);
  		long word = bits[i] >> index; // skip all the bits to the right of index
  
  		if (word != 0) {
  			return index + Long.numberOfTrailingZeros(word);
  		}
  
  		while (++i < numWords) {
  			word = bits[i];
  			if (word != 0) {
  				return (i << 6) + Long.numberOfTrailingZeros(word);
  			}
  		}
  
  		return -1;
  	}
docs: Returns the index of the first set bit starting at the index specified.
  -1 is returned if there are no more set bits.