gmp_popcount()
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
Population count
说明
gmp_popcount(GMP$a): int
Get the population count.
参数
- $a
可以是一个 GMP数据resouce,或一个可以转换为数值的字符串。
返回值
The population count of$a, as an integer.
范例
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"; ?>
以上例程会输出:
3 7
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.