<?php
function hitungNomorBit($angka, $nomorBit) {
// Validasi input harus 0 atau 1
if ($nomorBit !== 0 && $nomorBit !== 1) {
return null;
}
// Konversi manual dari desimal ke biner
$biner = [];
while ($angka > 0) {
$sisa = $angka % 2;
$angka = intdiv($angka, 2);
}
// Hitung jumlah kemunculan nomorBit
$jumlah = 0;
foreach ($biner as $bit) {
if ($bit === $nomorBit) {
$jumlah++;
}
}
// Jika tidak ditemukan, kembalikan null
return $jumlah > 0 ? $jumlah : null;
}
// Contoh penggunaan
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
;
?>
PD9waHAKCmZ1bmN0aW9uIGhpdHVuZ05vbW9yQml0KCRhbmdrYSwgJG5vbW9yQml0KSB7CiAgICAvLyBWYWxpZGFzaSBpbnB1dCBoYXJ1cyAwIGF0YXUgMQogICAgaWYgKCRub21vckJpdCAhPT0gMCAmJiAkbm9tb3JCaXQgIT09IDEpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvLyBLb252ZXJzaSBtYW51YWwgZGFyaSBkZXNpbWFsIGtlIGJpbmVyCiAgICAkYmluZXIgPSBbXTsKICAgIHdoaWxlICgkYW5na2EgPiAwKSB7CiAgICAgICAgJHNpc2EgPSAkYW5na2EgJSAyOwogICAgICAgIGFycmF5X3Vuc2hpZnQoJGJpbmVyLCAkc2lzYSk7IC8vIHRhbWJhaGthbiBkaSBkZXBhbiBhcnJheQogICAgICAgICRhbmdrYSA9IGludGRpdigkYW5na2EsIDIpOwogICAgfQoKICAgIC8vIEhpdHVuZyBqdW1sYWgga2VtdW5jdWxhbiBub21vckJpdAogICAgJGp1bWxhaCA9IDA7CiAgICBmb3JlYWNoICgkYmluZXIgYXMgJGJpdCkgewogICAgICAgIGlmICgkYml0ID09PSAkbm9tb3JCaXQpIHsKICAgICAgICAgICAgJGp1bWxhaCsrOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBKaWthIHRpZGFrIGRpdGVtdWthbiwga2VtYmFsaWthbiBudWxsCiAgICByZXR1cm4gJGp1bWxhaCA+IDAgPyAkanVtbGFoIDogbnVsbDsKfQoKLy8gQ29udG9oIHBlbmdndW5hYW4KZWNobyAiaGl0dW5nTm9tb3JCaXQoMTMsIDApID0gIiAuIHZhcl9leHBvcnQoaGl0dW5nTm9tb3JCaXQoMTMsIDApLCB0cnVlKSAuIFBIUF9FT0w7CmVjaG8gImhpdHVuZ05vbW9yQml0KDEzLCAxKSA9ICIgLiB2YXJfZXhwb3J0KGhpdHVuZ05vbW9yQml0KDEzLCAxKSwgdHJ1ZSkgLiBQSFBfRU9MOwplY2hvICJoaXR1bmdOb21vckJpdCgxMywgMikgPSAiIC4gdmFyX2V4cG9ydChoaXR1bmdOb21vckJpdCgxMywgMiksIHRydWUpIC4gUEhQX0VPTDsKCj8+Cg==