Standard library header <bit> (C++20)
From fr.cppreference.net
C++
Standard library headers
Cet en-tête fait partie de la bibliothèque numeric .
Types |
|
|
(C++20)
|
indique l'endianité des types scalaires
(enum) |
Fonctions | |
(C++20) |
réinterprète la représentation objet d'un type comme celle d'un autre (modèle de fonction) |
(C++23) |
inverse les octets dans la valeur entière donnée (modèle de fonction) |
(C++20) |
vérifie si un nombre est une puissance entière de 2 (modèle de fonction) |
(C++20) |
trouve la plus petite puissance entière de 2 non inférieure à la valeur donnée (modèle de fonction) |
(C++20) |
trouve la plus grande puissance entière de 2 non supérieure à la valeur donnée (modèle de fonction) |
(C++20) |
trouve le plus petit nombre de bits nécessaire pour représenter la valeur donnée (modèle de fonction) |
(C++29) |
décale vers la gauche sans possibilité de comportement indéfini (modèle de fonction) |
(C++29) |
décale vers la droite sans possibilité de comportement indéfini (modèle de fonction) |
(C++20) |
calcule le résultat d'une rotation binaire gauche (modèle de fonction) |
(C++20) |
calcule le résultat d'une rotation binaire droite (modèle de fonction) |
(C++20) |
compte le nombre de 0 bits consécutifs, en partant du bit de poids fort (modèle de fonction) |
(C++20) |
compte le nombre de 1 bits consécutifs, en partant du bit de poids fort (modèle de fonction) |
(C++20) |
compte le nombre de 0 bits consécutifs, en partant du bit de poids faible (modèle de fonction) |
(C++20) |
compte le nombre de 1 bits consécutifs, en partant du bit de poids faible (modèle de fonction) |
(C++20) |
compte le nombre de 1 bits dans un entier non signé (modèle de fonction) |
(C++29) |
inverse les bits dans un entier (modèle de fonction) |
(C++29) |
répète/diffuse un motif de bits de longueur spécifiée (modèle de fonction) |
(C++29) |
comprime les bits d'un opérande à l'aide d'un masque (PEXT) (modèle de fonction) |
(C++29) |
étend les bits d'un opérande à l'aide d'un masque (PDEP) (modèle de fonction) |
Synopsis
namespace std {
// bit_cast
template<class To, class From>
constexpr To bit_cast(const From& from) noexcept;
// byteswap
template <class T>
constexpr T byteswap(T value) noexcept;
// integral powers of 2
template<class T>
constexpr bool has_single_bit(T x) noexcept;
template<class T>
constexpr T bit_ceil(T x);
template<class T>
constexpr T bit_floor(T x) noexcept;
template<class T>
constexpr int bit_width(T x) noexcept;
// shifting
template<class T, class S>
constexpr T shl(T x, S s) noexcept;
template<class T, class S>
constexpr T shr(T x, S s) noexcept;
// rotating
template<class T>
constexpr T rotl(T x, int s) noexcept;
template<class T>
constexpr T rotr(T x, int s) noexcept;
// counting
template<class T>
constexpr int countl_zero(T x) noexcept;
template<class T>
constexpr int countl_one(T x) noexcept;
template<class T>
constexpr int countr_zero(T x) noexcept;
template<class T>
constexpr int countr_one(T x) noexcept;
template<class T>
constexpr int popcount(T x) noexcept;
// permutation
template<class T>
constexpr T bit_reverse(T x) noexcept;
template<class T>
constexpr T bit_repeat(T x, int l);
template<class T>
constexpr T bit_compress(T x, T m) noexcept;
template<class T>
constexpr T bit_expand(T x, T m) noexcept;
// endian
enum class endian {
little = /* see description */,
big = /* see description */,
native = /* see description */
};
}