• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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.

    上篇:gmp_perfect_square()

    下篇:gmp_pow()