function hitungNomorBit(angka, nomorBit) {
if (nomorBit !== 0 && nomorBit !== 1) {
return null;
}
if (angka === 0) {
if (nomorBit === 0) return 1;
else return 0;
}
let jumlahKemunculan = 0;
let sisaBagi;
while (angka > 0) {
sisaBagi = angka % 2;
if (sisaBagi === nomorBit) {
jumlahKemunculan++;
}
angka = (angka - sisaBagi) / 2;
}
return jumlahKemunculan;
}
// pengujian
console.log(hitungNomorBit(13, 0));
console.log(hitungNomorBit(13, 1));
console.log(hitungNomorBit(13, 2));
ZnVuY3Rpb24gaGl0dW5nTm9tb3JCaXQoYW5na2EsIG5vbW9yQml0KSB7CiAgICBpZiAobm9tb3JCaXQgIT09IDAgJiYgbm9tb3JCaXQgIT09IDEpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBpZiAoYW5na2EgPT09IDApIHsKICAgICAgICBpZiAobm9tb3JCaXQgPT09IDApIHJldHVybiAxOwogICAgICAgIGVsc2UgcmV0dXJuIDA7CiAgICB9CgogICAgbGV0IGp1bWxhaEtlbXVuY3VsYW4gPSAwOwogICAgbGV0IHNpc2FCYWdpOwoKICAgIHdoaWxlIChhbmdrYSA+IDApIHsKICAgICAgICBzaXNhQmFnaSA9IGFuZ2thICUgMjsKCiAgICAgICAgaWYgKHNpc2FCYWdpID09PSBub21vckJpdCkgewogICAgICAgICAgICBqdW1sYWhLZW11bmN1bGFuKys7CiAgICAgICAgfQoKICAgICAgICBhbmdrYSA9IChhbmdrYSAtIHNpc2FCYWdpKSAvIDI7CiAgICB9CgogICAgcmV0dXJuIGp1bWxhaEtlbXVuY3VsYW47Cn0KCi8vIHBlbmd1amlhbgpjb25zb2xlLmxvZyhoaXR1bmdOb21vckJpdCgxMywgMCkpOyAKY29uc29sZS5sb2coaGl0dW5nTm9tb3JCaXQoMTMsIDEpKTsgCmNvbnNvbGUubG9nKGhpdHVuZ05vbW9yQml0KDEzLCAyKSk7IAoK