numeric_bit_ceil

numeric_bit_ceil (std::bit_ceil)

<bit> 헤더에 정의되어 있어요. x보다 작지 않은 가장 작은 2의 거듭제곱 정수를 계산해요. C++20부터 도입됐어요.

출처: cppreference

본문

template< class T >
constexpr T bit_ceil( T x );

(C++20부터)

x보다 작지 않은 가장 작은 정수 2의 거듭제곱을 계산해요. 그 값이 T에 표현될 수 없으면 동작은 미정의예요.

매개변수

  • x: 비교할 값

타입 요구사항

  • T는 부호 없는 정수 타입(즉 unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long)이어야 해요.

예제

#include <bit>
#include <iostream>

int main()
{
    for (int x : {0, 1, 2, 3, 4, 5, 15, 16, 17})
        std::cout << x << " -> " << std::bit_ceil((unsigned)x) << '\n';
}

출력:

0 -> 1
1 -> 1
2 -> 2
3 -> 4
4 -> 4
5 -> 8
15 -> 16
16 -> 16
17 -> 32

용량·크기 등을 2의 거듭제곱으로 올림하고 싶을 때 유용해요. 0이면 1을 돌려줘요.

더 알아보기 (Learn more)

cppreference