std::rotl
De cppreference.com
Definido en el archivo de encabezado <bit>
|
||
template< class T > [[nodiscard]] constexpr T rotl( T x, int s ) noexcept; |
(desde C++20) | |
Calcula el resultado de rotar a la izquierda bit a bit el valor de x
en s
posiciones. Esta operación también se conoce como desplazamiento circular a la izquierda.
Formalmente, sea N
std::numeric_limits<T>::digits, sea r
s % N.
- Si
r
es 0, devuelve x; - si
r
es positiva, devuelve (x << r) | (x >> (N - r)); - si
r
es negativa, devuelve std::rotr(x, -r).
Esta sobrecarga solo participa en la resolución de sobrecargas 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).
Contenido |
[editar] Parámetros
x | - | Valor del tipo entero sin signo. |
s | - | Número de posiciones a cambiar. |
[editar] Valor de retorno
El resultado de rotar x
a la izquierda bit a bit por s
posiciones.
[editar] Notas
Macro de Prueba de característica |
---|
__cpp_lib_bitops
|
[editar] Ejemplo
Ejecuta este código
#include <bit> #include <bitset> #include <cstdint> #include <iostream> int main() { const std::uint8_t i = 0b00011101; std::cout << "i = " << std::bitset<8>(i) << '\n'; std::cout << "rotl(i,0) = " << std::bitset<8>(std::rotl(i,0)) << '\n'; std::cout << "rotl(i,1) = " << std::bitset<8>(std::rotl(i,1)) << '\n'; std::cout << "rotl(i,4) = " << std::bitset<8>(std::rotl(i,4)) << '\n'; std::cout << "rotl(i,9) = " << std::bitset<8>(std::rotl(i,9)) << '\n'; std::cout << "rotl(i,-1) = " << std::bitset<8>(std::rotl(i,-1)) << '\n'; }
Salida:
i = 00011101 rotl(i,0) = 00011101 rotl(i,1) = 00111010 rotl(i,4) = 11010001 rotl(i,9) = 00111010 rotl(i,-1) = 10001110
[editar] Véase también
(C++20) |
Calcula el resultado de la rotación derecha de bits (plantilla de función) |
realiza izquierda binario desplazamiento y desplazamiento a la derecha Original: performs binary shift left and shift right The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública de std::bitset )
|