assert(nextPowOf2(10) == 16); // デフォルトではnext = 1なので、次の2の累乗数を返す assert(nextPowOf2(10, 0) == 8); // next = 0だと、前の2の累乗数を返す assert(nextPowOf2(10, 2) == 32); // next = 2なので、next2Pow(10) << 1を返す。
assert(nextPowOf2(10.0) == 16.0); assert(nextPowOf2(10.0, 0) == 8.0); assert(nextPowOf2(10.0, 2) == 32.0);
nextが1である場合に、next2Pow(num)はnumより大きく、かつ、最小の2の累乗数を返します。
もし、nextが0であれば、next2Powはnumより小さく、かつ、最大の2の累乗数を返します。 nextがm > 1の場合には、next2Pow(num, m)は、next2Pow(num) << (m - 1)を返します。