<?php
function hitungNomorBit($angka, $nomorBit) {
if ($nomorBit !== 0 && $nomorBit !== 1) {
return null;
}
$biner = [];
while ($angka > 0) {
$sisa = $angka % 2;
$angka = intdiv($angka, 2);
}
$jumlah = 0;
foreach ($biner as $bit) {
if ($bit === $nomorBit) {
$jumlah++;
}
}
return $jumlah > 0 ? $jumlah : null;
}
echo "hitungNomorBit(13, 0) = " . var_export(hitungNomorBit
(13, 0), true) . PHP_EOL
; echo "hitungNomorBit(13, 1) = " . var_export(hitungNomorBit
(13, 1), true) . PHP_EOL
; echo "hitungNomorBit(13, 2) = " . var_export(hitungNomorBit
(13, 2), true) . PHP_EOL
;
?>
PD9waHAKCmZ1bmN0aW9uIGhpdHVuZ05vbW9yQml0KCRhbmdrYSwgJG5vbW9yQml0KSB7CiAgICBpZiAoJG5vbW9yQml0ICE9PSAwICYmICRub21vckJpdCAhPT0gMSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgICRiaW5lciA9IFtdOwogICAgd2hpbGUgKCRhbmdrYSA+IDApIHsKICAgICAgICAkc2lzYSA9ICRhbmdrYSAlIDI7CiAgICAgICAgYXJyYXlfdW5zaGlmdCgkYmluZXIsICRzaXNhKTsKICAgICAgICAkYW5na2EgPSBpbnRkaXYoJGFuZ2thLCAyKTsKICAgIH0KCiAgICAkanVtbGFoID0gMDsKICAgIGZvcmVhY2ggKCRiaW5lciBhcyAkYml0KSB7CiAgICAgICAgaWYgKCRiaXQgPT09ICRub21vckJpdCkgewogICAgICAgICAgICAkanVtbGFoKys7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkanVtbGFoID4gMCA/ICRqdW1sYWggOiBudWxsOwp9CgplY2hvICJoaXR1bmdOb21vckJpdCgxMywgMCkgPSAiIC4gdmFyX2V4cG9ydChoaXR1bmdOb21vckJpdCgxMywgMCksIHRydWUpIC4gUEhQX0VPTDsKZWNobyAiaGl0dW5nTm9tb3JCaXQoMTMsIDEpID0gIiAuIHZhcl9leHBvcnQoaGl0dW5nTm9tb3JCaXQoMTMsIDEpLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gImhpdHVuZ05vbW9yQml0KDEzLCAyKSA9ICIgLiB2YXJfZXhwb3J0KGhpdHVuZ05vbW9yQml0KDEzLCAyKSwgdHJ1ZSkgLiBQSFBfRU9MOwoKPz4K