Namespaces
Variants

std::bit_reverse

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support du langage
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (déprécié en C++20)
 
 
Défini dans l'en-tête <bit>
template< class T >
constexpr T bit_reverse( T x ) noexcept;
(depuis C++29)

Renvoie x avec l'ordre des bits inversé.

Cette surcharge participe à la résolution de surcharge seulement si T est un type entier non signé (c'est-à-dire unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, ou un type entier non signé étendu).

Paramètres

x - valeur d'un type entier non signé

Valeur de retour

x avec l'ordre des bits inversé.

Notes

La fonction est généralement implémentée à l'aide d'une fonction intrinsèque telle que __builtin_bitreverse de Clang, et a le même effet que l'instruction rbit sur les processeurs ARM.

Macro de test de fonctionnalité macro Valeur Norme Fonctionnalité
__cpp_lib_bitops 202606L (C++29) Permutations de bits

Exemple

#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() {}

Voir aussi

(C++20)
calcule le résultat d'une rotation gauche binaire
(modèle de fonction)
(C++20)
calcule le résultat d'une rotation droite binaire
(modèle de fonction)
(C++23)
inverse les octets dans la valeur entière donnée
(modèle de fonction)