PHP.mk документација

gmp_popcount

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.gmp-popcount.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.gmp-popcount.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
gmp_popcount

Референца за `function.gmp-popcount.php` со подобрена типографија и навигација.

function.gmp-popcount.php

gmp_popcount

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

gmp_popcountPopulation count

= NULL

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

Get the population count.

Параметри

num

А GMP објект, еден int, или string што може да се толкува како број следејќи ја истата логика како да се користел стринг во gmp_init() со автоматско откривање на база (т.е. кога base е еднакво на 0).

Вратени вредности

The population count of num, како int.

Примери

Пример #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";
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

3
7

Белешки од корисници 2 забелешки

ketrab2004
пред 4 години
Another way to get the population count when you don't have the gmp extension is using bitwise operations:

<?php

$int = 133; // 10000101

for($count = 0; $int != 0; $count++) // repeat until $int is 0 (and count the amount of steps it takes in $count)
{
    $int = $int & $int-1; // remove the right most 1 from $int using the bitwise and operator
}

echo $count; // 3

?>

This is Kernighan's population count.

https://youtu.be/ZRNO-ewsNcQ?t=510 has a nice explanation on how it works
phpmanual at headbank dot co dot uk
пред 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.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.