std::bit_reverse
De es.cppreference.net
| 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
Ejecutar este código
#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) |