std::bit_reverse
Depuis fr.cppreference.net
| 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
Exécuter ce code
#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) |