PHP 7.4.0RC6 Released!

gmp_popcount

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

gmp_popcountPopulation count

Beschreibung

gmp_popcount ( GMP $a ) : int

Get the population count.

Parameter-Liste

a

Dies kann entweder eine resource für einen GMP-Wert in PHP 5.5 oder voher sein, ein GMP-Objekt in PHP 5.6 und später oder ein numerischer String, wenn es möglich ist, diesen in einen GMP-Wert umzuwandeln.

Rückgabewerte

The population count of a, as an integer.

Beispiele

Beispiel #1 gmp_popcount() example

<?php
$pop1 
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";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
7

add a note add a note

User Contributed Notes 1 note

up
0
phpmanual at headbank dot co dot uk
11 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().

<?php
$int1
= 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