namespace std {
template <class T>
constexpr T bit_reverse(T x) noexcept; // C++29
}
概要
値xのビット列の並びを反転する。
最下位ビットと最上位ビットを入れ替えるように、すべてのビットを逆順に並べ替える。
テンプレートパラメータ制約
- 型
Tが符号なし整数型であること
戻り値
Tのビット数をN(std::numeric_limits<T>::digits)とする。xの第nビット(0以上N未満)を第N - 1 - nビットへ移した値を返す。
例外
投げない
備考
bit_reverse(bit_reverse(x))はxに等しい。- この関数は、ハードウェア機能として提供されている場合がある。
例
#include <bit>
#include <cstdint>
#include <print>
int main()
{
std::uint16_t x = 0b0000'0000'0000'0001;
std::uint16_t r = std::bit_reverse(x);
std::println("{:016b}", r);
}
出力
1000000000000000
バージョン
言語
- C++29
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
参照
- P3104R3 Bit permutations
- C++29で追加された