C++ 参考手册
- C++11
 - C++14
 - C++17
 - C++20
 - C++ 编译器支持情况表
 - 独立与宿主实现
 - C++ 语言
 - C++ 关键词
 - 预处理器
 - C++ 标准库头文件
 - 具名要求
 - 功能特性测试 (C++20)
 - 工具库
 - 类型支持(基本类型、RTTI、类型特性)
 - 概念库 (C++20)
 - 错误处理
 - 动态内存管理
 - 日期和时间工具
 - 字符串库
 - 容器库
 - 迭代器库
 - 范围库 (C++20)
 - 算法库
 - 数值库
 - std::midpoint
 - std::lerp
 - std::has_single_bit
 - std::bit_ceil
 - std::bit_floor
 - std::bit_width
 - std::rotl
 - 常用数学函数
 - 数学特殊函数
 - 伪随机数生成
 - 浮点环境
 - std::complex
 - std::valarray
 - 编译时有理数算术
 - std::gcd
 - std::lcm
 - 数学常数
 - std::bit_cast
 - std::rotr
 - std::countl_zero
 - std::countl_one
 - std::countr_zero
 - std::countr_one
 - std::popcount
 - 注释
 - 输入/输出库
 - 文件系统库
 - 本地化库
 - 正则表达式库
 - 原子操作库
 - 线程支持库
 - 实验性 C++ 特性
 - 有用的资源
 - 索引
 - std 符号索引
 - 协程支持 (C++20)
 - C++ 关键词
 
std::rotr
|   定义于头文件  <bit>
  | 
||
|   template<class T> [[nodiscard]] constexpr T rotr(T x, int s) noexcept;  | 
(C++20 起) | |
计算将 x 右旋转 s 位的结果。此运算被称为循环移位。
正式而言,令 N 为 std::numeric_limits<T>::digits , r 为 s % N 。
-  若 
r为 0 ,则返回 x ; -  若 
r为正,则返回 (x >> r) | (x << (N - r)) ; -  若 
r为负,则返回 std::rotl(x, -r) 。 
此重载仅若 T 为无符号整数类型(即 unsigned char 、 unsigned short 、 unsigned int 、 unsigned long 、 unsigned long long 或扩展无符号整数类型)才参与重载决议。
参数
| x | - | 无符号整数类型的值 | 
返回值
将 x 右旋转 s 位的结果。
示例
运行此代码
#include <bit> #include <bitset> #include <cstdint> #include <iostream> int main() { 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'; }
输出:
i = 00011101 rotr(i,0) = 00011101 rotr(i,1) = 10001110 rotr(i,9) = 10001110 rotr(i,-1) = 00111010
参阅
|    (C++20)  | 
   计算逐位左旋转的结果   (函数模板)  |