<?php
function hitungNomorBit(int $angka, int $nomorBit): ?int
{
if ($nomorBit !== 0 && $nomorBit !== 1) {
return null;
}
$jumlah = 0;
while ($angka > 0) {
$bit = $angka % 2;
if ($bit === $nomorBit) {
$jumlah++;
}
$angka = intdiv($angka, 2);
}
return $jumlah;
}
// Representasi bilangan biner dari angka 13 adalah 1101
echo hitungNomorBit(57, 0) . PHP_EOL;
echo hitungNomorBit(57, 1) . PHP_EOL;
PD9waHAKCmZ1bmN0aW9uIGhpdHVuZ05vbW9yQml0KGludCAkYW5na2EsIGludCAkbm9tb3JCaXQpOiA/aW50CnsKICAgIGlmICgkbm9tb3JCaXQgIT09IDAgJiYgJG5vbW9yQml0ICE9PSAxKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgJGp1bWxhaCA9IDA7CgogICAgd2hpbGUgKCRhbmdrYSA+IDApIHsKICAgICAgICAkYml0ID0gJGFuZ2thICUgMjsKICAgICAgICBpZiAoJGJpdCA9PT0gJG5vbW9yQml0KSB7CiAgICAgICAgICAgICRqdW1sYWgrKzsKICAgICAgICB9CiAgICAgICAgJGFuZ2thID0gaW50ZGl2KCRhbmdrYSwgMik7CiAgICB9CgogICAgcmV0dXJuICRqdW1sYWg7Cn0KCgoKLy8gUmVwcmVzZW50YXNpIGJpbGFuZ2FuIGJpbmVyIGRhcmkgYW5na2EgMTMgYWRhbGFoIDExMDEKZWNobyBoaXR1bmdOb21vckJpdCg1NywgMCkgLiBQSFBfRU9MOwplY2hvIGhpdHVuZ05vbW9yQml0KDU3LCAxKSAuIFBIUF9FT0w7CmVjaG8gdmFyX2V4cG9ydChoaXR1bmdOb21vckJpdCg1NywgMiksIHRydWUpOwo=