std::bit_reverse
ja.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 ビットの順序を反転したもの。
ノート
この関数は通常、Clangの__builtin_bitreverseなどの組み込み関数を使用して実装され、ARM CPUのrbit命令と同じ効果があります。
| 機能テスト マクロ | 値 | Std | 機能 |
|---|---|---|---|
__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) |
指定された整数値のバイトを反転する (関数テンプレート) |