Namespaces
Variants

std::bit_reverse

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
 
ヘッダで定義 <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)
指定された整数値のバイトを反転する
(関数テンプレート)