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을 돌려줘요.