(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_popcountCuenta la población


gmp_popcount(GMP|int|string $num): int

Obtiene el conteo de la población.



resource de número de GMP en PHP 5.5 y anterior, o un objeto de GMP en PHP 5.6 y posterior, o un string numérico siempre que sea posible convertirlo a un número.

Valores devueltos

El conteo de la población de num, como un int.


Ejemplo #1 Ejemplo de gmp_popcount()

= gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";

El resultado del ejemplo sería:


add a note add a note

User Contributed Notes 1 note

phpmanual at headbank dot co dot uk
4 years ago
If you don't have gmp extension enabled (or don't want to use it for any reason), you can get popcount of an int using decbin() and substr_count().

= 133;
$bin1 = decbin($int1); // "10000101"
echo substr_count($bin1, "1");

// Result: 3

Being a string-comparison this is far less efficient than gmp_popcount() (for which there is a dedicated instruction on most if not all modern processors), but may be handy if gmp is unavailable, or in non-performance-critical code that doesn't otherwise need it.
To Top