Longhorn PHP 2019 Schedule


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

gmp_popcountComptage de population


gmp_popcount ( GMP $a ) : int

Dénombre la population de a.

Liste de paramètres


Il peut être soit une ressource GMP en PHP 5.5 et antérieurs, soit un objet GMP en PHP 5.6 et suivants, soit une chaîne numérique qu'il est possible de convertir plus tard en un nombre.

Valeurs de retour

La population de a, sous la forme d'un entier.


Exemple #1 Exemple avec 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";

L'exemple ci-dessus va afficher :


add a note add a note

User Contributed Notes 1 note

phpmanual at headbank dot co dot uk
3 months 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