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, unsignedchar, unsignedshort, unsignedint, unsignedlong, unsignedlonglong, 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(){conststd::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 ) |