std::rotr - cppreference.com
De cppreference.com
| Definido en el archivo de encabezado |
||
|
|
(desde C++20) | |
Calcula el resultado de rotar a la derecha bit a bit el valor de x en s posiciones. Esta operación también se conoce como desplazamiento circular a la derecha.
Formalmente, sea N std::numeric_limits<T>::digits, sea r s % N.
- Si
res 0, devuelvex; - si
res positiva, devuelve(x >> r) | (x << (N - r)); - si
res negativa, devuelvestd::rotl(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).
Parámetros
| x | - | Valor del tipo entero sin signo. |
| s | - | Número de posiciones a cambiar. |
Valor de retorno
El resultado de rotar x a la derecha bit a bit por s posiciones.
Notas
| Macro de Prueba de característica |
|---|
__cpp_lib_bitops
|
Ejemplo
#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 << "rotr(i,0) = " << std::bitset<8>(std::rotr(i,0)) << '\n'; std::cout << "rotr(i,1) = " << std::bitset<8>(std::rotr(i,1)) << '\n'; std::cout << "rotr(i,9) = " << std::bitset<8>(std::rotr(i,9)) << '\n'; std::cout << "rotr(i,-1) = " << std::bitset<8>(std::rotr(i,-1)) << '\n'; }
Salida:
i = 00011101 rotr(i,0) = 00011101 rotr(i,1) = 10001110 rotr(i,9) = 10001110 rotr(i,-1) = 00111010
Véase también
| Calcula el resultado de la rotación izquierda de bits (plantilla de función) [editar] | |
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. (función miembro pública de std::bitset) [editar]
|