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·비트 매트릭스 처리 등에 유용해요.

더 알아보기 (Learn more)

cppreference