Namensräume
Varianten
Aktionen

std::popcount

Von cppreference.com
< cpp‎ | numeric
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
Definiert in Header <bit>
template< class T >
constexpr int popcount( T x ) noexcept;
(seit C++20)

Gibt die Anzahl der 1er Bits im Wert von x zurück.

Diese Überladung nimmt an der Überladungsauflösung teil, nur wenn T ein vorzeichenloser Ganzzahltyp ist (d.h. unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long oder ein erweiterter vorzeichenloser Ganzzahltyp).

Inhalt

[bearbeiten] Parameter

x - Wert vom Typ vorzeichenlose Ganzzahl

[bearbeiten] Rückgabewert

Die Anzahl der 1er Bits im Wert von x.

[bearbeiten] Hinweise

Der Name popcount ist eine Abkürzung für "population count" (Bevölkerungszählung).

Feature-Test-Makro Wert Std Feature
__cpp_lib_bitops 201907L (C++20) Bitoperationen

[bearbeiten] Beispiel

#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';
}

Ausgabe

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

[bearbeiten] Siehe auch

zählt die Anzahl aufeinanderfolgender 0-Bits, beginnend mit dem höchstwertigen Bit
(Funktion-Template) [bearbeiten]
zählt die Anzahl aufeinanderfolgender 1-Bits, beginnend mit dem höchstwertigen Bit
(Funktion-Template) [bearbeiten]
zählt die Anzahl aufeinanderfolgender 0-Bits, beginnend mit dem niedrigstwertigen Bit
(Funktion-Template) [bearbeiten]
zählt die Anzahl aufeinanderfolgender 1-Bits, beginnend mit dem niedrigstwertigen Bit
(Funktion-Template) [bearbeiten]
prüft, ob eine Zahl eine ganzzahlige Zweierpotenz ist
(Funktion-Template) [bearbeiten]
gibt die Anzahl der auf true gesetzten Bits zurück
(public member function of std::bitset<N>) [edit]
prüft, ob alle, einige oder keine der Bits auf true gesetzt sind
(public member function of std::bitset<N>) [bearbeiten]