numeric_countl_one
numeric_countl_one (최상위 비트부터 연속 1 비트 개수)
std::countl_one은 x의 값에서 최상위 비트("왼쪽")부터 시작해 연속된 1("one") 비트가 몇 개인지 세는 함수예요. C++20부터 사용할 수 있어요.
출처: cppreference
본문
<bit> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.
template< class T >
constexpr int countl_one( T x ) noexcept;
(since C++20)
x의 값에서 최상위 비트부터 시작해 연속된 1 비트의 개수를 반환해요.
매개변수 (Parameters)
- x — 1 비트를 셀 값
타입 요구사항 (Type requirements)
- T — 오버로드 해석에 참여하려면 부호 없는 정수 타입이어야 해요 (즉 unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, 또는 확장 부호 없는 정수 타입).
반환값 (Return value)
x의 값에서 최상위 비트부터 시작한 연속 1 비트의 개수예요.
참고 (Notes)
| 피처 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_bitops |
201907L | (C++20) | 비트 연산 |
예제 (Example)
이 코드를 실행해 봐요.
#include <bit>
#include <bitset>
#include <cstdint>
#include <iostream>
int main()
{
for (const std::uint8_t i : {0, 0b11111111, 0b01111111, 0b11100011})
std::cout << "countl_one( " << std::bitset<8>(i) << " ) = "
<< std::countl_one(i) << '\n';
}
출력:
countl_one( 00000000 ) = 0
countl_one( 11111111 ) = 8
countl_one( 01111111 ) = 0
countl_one( 11100011 ) = 3