<?php
function hitungNomorBit(int $angka, int $nomorBit)
{
if ($nomorBit !== 0 && $nomorBit !== 1) {
return null;
}
if ($angka === 0) {
return $nomorBit === 0 ? 1 : 0;
}
$jumlah = 0;
while ($angka > 0) {
$digit = $angka % 2;
if ($digit === $nomorBit) {
++$jumlah;
}
$angka = intdiv($angka, 2);
}
return $jumlah;
}
echo hitungNomorBit(13, 0) . PHP_EOL;
echo hitungNomorBit(13, 1) . PHP_EOL;
PD9waHAKZnVuY3Rpb24gaGl0dW5nTm9tb3JCaXQoaW50ICRhbmdrYSwgaW50ICRub21vckJpdCkKewogICAgaWYgKCRub21vckJpdCAhPT0gMCAmJiAkbm9tb3JCaXQgIT09IDEpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBpZiAoJGFuZ2thID09PSAwKSB7CiAgICAgICAgcmV0dXJuICRub21vckJpdCA9PT0gMCA/IDEgOiAwOwogICAgfQoKICAgICRqdW1sYWggPSAwOwoKICAgIHdoaWxlICgkYW5na2EgPiAwKSB7CiAgICAgICAgJGRpZ2l0ID0gJGFuZ2thICUgMjsgICAgICAKICAgICAgICBpZiAoJGRpZ2l0ID09PSAkbm9tb3JCaXQpIHsKICAgICAgICAgICAgKyskanVtbGFoOwogICAgICAgIH0KICAgICAgICAkYW5na2EgPSBpbnRkaXYoJGFuZ2thLCAyKTsKICAgIH0KCiAgICByZXR1cm4gJGp1bWxhaDsKfQoKZWNobyBoaXR1bmdOb21vckJpdCgxMywgMCkgLiBQSFBfRU9MOyAgIAplY2hvIGhpdHVuZ05vbW9yQml0KDEzLCAxKSAuIFBIUF9FT0w7ICAKdmFyX2R1bXAoaGl0dW5nTm9tb3JCaXQoMTMsIDIpKTsgICAgICAgIA==