Namespaces
Variants

std:: popcount

From cppreference.net
Utilities library
Défini dans l'en-tête <bit>
template < class T >
constexpr int popcount ( T x ) noexcept ;
(depuis C++20)

Retourne le nombre de 1 bits dans la valeur de x .

Cette surcharge participe à la résolution de surcharge uniquement 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).

Table des matières

Paramètres

x - valeur de type entier non signé

Valeur de retour

Le nombre de 1 bits dans la valeur de x .

Notes

Le terme popcount est une contraction de « population count ».

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_bitops 201907L (C++20) Opérations sur les bits

Exemple

#include <bit>
#include <bitset>
#include <cstdint>
#include <iostream>
static_assert(std::popcount(0xFULL) == 4);
int main()
{
    for (const std::uint8_t x : {0, 0b00011101, 0b11111111})
        std::cout << "popcount( " << std::bitset<8>(x) << " ) = "
                  << std::popcount(x) << '\n';
}

Sortie :

popcount( 00000000 ) = 0
popcount( 00011101 ) = 4
popcount( 11111111 ) = 8

Voir aussi

compte le nombre de bits 0 consécutifs, en commençant par le bit le plus significatif
(modèle de fonction)
(C++20)
compte le nombre de bits 1 consécutifs, en commençant par le bit le plus significatif
(modèle de fonction)
compte le nombre de bits 0 consécutifs, en commençant par le bit le moins significatif
(modèle de fonction)
(C++20)
compte le nombre de bits 1 consécutifs, en commençant par le bit le moins significatif
(modèle de fonction)
vérifie si un nombre est une puissance entière de 2
(modèle de fonction)
retourne le nombre de bits définis à true
(fonction membre publique de std::bitset<N> )
vérifie si tous, au moins un ou aucun des bits sont définis à true
(fonction membre publique de std::bitset<N> )