nextPowOf2

nextが1である場合に、next2Pow(num)はnumより大きく、かつ、最小の2の累乗数を返します。

もし、nextが0であれば、next2Powはnumより小さく、かつ、最大の2の累乗数を返します。 nextがm > 1の場合には、next2Pow(num, m)は、next2Pow(num) << (m - 1)を返します。

  1. size_t nextPowOf2(T num, size_t next = 1)
    size_t
    nextPowOf2
    (
    T
    )
    (
    T num
    ,
    size_t next = 1
    )
    if (
    isIntegral!T
    )
    in { assert (num >= 1); }
  2. F nextPowOf2(F num, size_t next = 1)

Examples

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);

Meta