std::popcount
De es.cppreference.net
| Definido en el encabezado <bit>
|
||
template< class T >
constexpr int popcount( T x ) noexcept;
|
(desde C++20) | |
Devuelve el número de 1 bits en el valor de x.
Esta sobrecarga participa en la resolución de sobrecarga solo si T es un tipo entero sin signo (es decir, unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long, o un tipo entero sin signo extendido).
Parámetros
| x | - | valor de tipo entero sin signo |
Valor de retorno
El número de 1 bits en el valor de x .
Notas
El nombre
popcount
es una contracción de "population count".
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_bitops
|
201907L
|
(C++20) | Operaciones de bits |
Ejemplo
Ejecutar este código
#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'; }
Salida:
popcount( 00000000 ) = 0 popcount( 00011101 ) = 4 popcount( 11111111 ) = 8
Véase también
|
(C++20)
|
cuenta el número de bits
0
consecutivos, comenzando desde el bit más significativo
(plantilla de función) |
|
(C++20)
|
cuenta el número de bits
1
consecutivos, comenzando desde el bit más significativo
(plantilla de función) |
|
(C++20)
|
cuenta el número de bits
0
consecutivos, comenzando desde el bit menos significativo
(plantilla de función) |
|
(C++20)
|
cuenta el número de bits
1
consecutivos, comenzando desde el bit menos significativo
(plantilla de función) |
|
(C++20)
|
verifica si un número es una potencia entera de
2
(plantilla de función) |
|
retorna el número de bits establecidos en
true
(función miembro pública de
std::bitset<N>
)
|
|
|
verifica si todos, alguno o ninguno de los bits están establecidos en
true
(función miembro pública de
std::bitset<N>
)
|