numeric_bit_reverse
numeric_bit_reverse (std::bit_reverse)
<bit> 헤더에 정의되어 있어요. x의 비트 순서를 뒤집은 값을 돌려줘요. C++29부터 도입됐어요.
출처: cppreference
본문
template< class T >
constexpr T bit_reverse( T x ) noexcept;
(C++29부터)
x의 비트 순서를 뒤집은 값을 돌려줘요.
매개변수
x: 비트를 뒤집을 값
타입 요구사항
T는 부호 없는 정수 타입(즉unsigned char,unsigned short,unsigned int,unsigned long,unsigned long long또는 확장 부호 없는 정수 타입)이어야 오버로드 해석에 참여해요.
반환값
비트 순서가 뒤집힌 x.
주의 (Notes)
이 함수는 보통 Clang의 __builtin_bitreverse 같은 내장 함수로 구현되며, ARM CPU의 rbit 명령과 같은 효과를 내요.
예제
#include <bit>
#include <cstdint>
static_assert(
std::bit_reverse(
std::uint8_t{0b10101100})
== std::uint8_t{0b00110101}
);
비트를 반전해 비트 순서를 바꿔야 하는 FFT·비트 매트릭스 처리 등에 유용해요.