Namespaces
Variants

std::bit_reverse

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades del programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoletos en C++20)
 
 
Definido en el encabezado <bit>
template< class T >
constexpr T bit_reverse( T x ) noexcept;
(desde C++29)

Devuelve x con el orden de los bits invertido.

Esta sobrecarga participa en la resolución de sobrecarga solo si T es un tipo entero sin signo (es decir, unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, o un tipo entero sin signo extendido).

Parámetros

x - valor de tipo entero sin signo

Valor de retorno

x con el orden de los bits invertido.

Notas

La función se implementa típicamente usando una intrínseca como __builtin_bitreverse de Clang, y tiene el mismo efecto que la instrucción rbit en CPUs ARM.

Macro de prueba de características Valor Std Característica
__cpp_lib_bitops 202606L (C++29) Permutaciones de bits

Ejemplo

#include <bit>
#include <cstdint>

static_assert(
    std::bit_reverse(
        std::uint8_t{0b1010'0011}) ==
        std::uint8_t{0b1100'0101} and
    std::bit_reverse(
        std::uint16_t{0b1010'0011}) ==
        std::uint16_t{0b1100'0101'0000'0000}
);

int main() {}

Véase también

(C++20)
calcula el resultado de la rotación a la izquierda a nivel de bits
(plantilla de función)
(C++20)
calcula el resultado de la rotación a la derecha a nivel de bits
(plantilla de función)
(C++23)
invierte los bytes en el valor entero dado
(plantilla de función)