std::bit_reverse
来自cppreference.net
| 定义于头文件 <bit>
|
||
template< class T >
constexpr T bit_reverse( T x ) noexcept;
|
(从 C++29 起) | |
返回 x 并将位的顺序反转。
此重载仅当 T 为无符号整数类型时(即 unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long 或扩展无符号整数类型)才参与重载决议。
参数
| x | - | 无符号整数类型的值 |
返回值
x将位顺序反转后的 x。
注解
该函数通常使用内建函数(如 Clang 的 __builtin_bitreverse)实现,并且与 ARM CPU 上的 rbit 指令效果相同。
| 功能特性测试宏 | 值 | 标准 | 特性 |
|---|---|---|---|
__cpp_lib_bitops |
202606L |
(C++29) | 位排列 |
示例
运行此代码
#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() {}
参阅
(C++20) |
计算逐位左旋转的结果 (函数模板) |
(C++20) |
计算逐位右旋转的结果 (函数模板) |
(C++23) |
反转给定整数值中的字节 (函数模板) |