<?php
function hitungNomorBit(int $angka, int $nomorBit){
//pertama harus konvert ke binary
$binary = [];
if ($angka == 0 ) {
$binary=[0];
}else{
while($angka >= 1 ){
$bit = $angka % 2;
$angka = ( $angka - $bit) / 2;
$binary[] = $bit;
}
$total = 0;
//kemudian looping check total jumlah binary sesuai nomorBit
foreach($binary as $bin){
if($bin == $nomorBit) $total++ ;
}
echo ($total) ? $total : null;
}
}
// Representasi bilangan biner dari angka 13 adalah 1101
hitungNomorBit(13, 0);// → mengeluarkan hasil bilangan desimal 1
hitungNomorBit(13, 1);// → mengeluarkan hasil bilangan desimal 3
hitungNomorBit(13, 2);// → mengeluarkan hasil null
PD9waHAKCgpmdW5jdGlvbiBoaXR1bmdOb21vckJpdChpbnQgJGFuZ2thLCBpbnQgJG5vbW9yQml0KXsKICAgIC8vcGVydGFtYSBoYXJ1cyBrb252ZXJ0IGtlIGJpbmFyeQogICAgJGJpbmFyeSA9IFtdOwogICAgaWYgKCRhbmdrYSA9PSAwICkgewogICAgICAgICRiaW5hcnk9WzBdOwogICAgfWVsc2V7CgogICAgICAgIHdoaWxlKCRhbmdrYSA+PSAxICl7CiAgICAgICAgICAgICRiaXQgPSAkYW5na2EgJSAyOwogICAgICAgICAgICAkYW5na2EgPSAoICRhbmdrYSAtICRiaXQpIC8gMjsKICAgICAgICAgICAgJGJpbmFyeVtdID0gJGJpdDsgCiAgICAgICAgfQogICAgICAgICRiaW5hcnkgPSBhcnJheV9yZXZlcnNlKCRiaW5hcnkpOwogICAgICAgIAogICAgICAgICR0b3RhbCA9IDA7CiAgICAKICAgICAgICAvL2tlbXVkaWFuIGxvb3BpbmcgIGNoZWNrIHRvdGFsIGp1bWxhaCBiaW5hcnkgc2VzdWFpIG5vbW9yQml0CiAgICAgICAgZm9yZWFjaCgkYmluYXJ5IGFzICRiaW4pewogICAgICAgICAgICBpZigkYmluID09ICRub21vckJpdCkgJHRvdGFsKysgOwogICAgICAgIH0KCiAgICAgICAgZWNobyAoJHRvdGFsKSA/ICR0b3RhbCA6IG51bGw7CgogICAgfQoKfQoKIAoKCi8vIFJlcHJlc2VudGFzaSBiaWxhbmdhbiBiaW5lciBkYXJpIGFuZ2thIDEzIGFkYWxhaCAxMTAxCgpoaXR1bmdOb21vckJpdCgxMywgMCk7Ly8gIOKGkiAgbWVuZ2VsdWFya2FuIGhhc2lsIGJpbGFuZ2FuIGRlc2ltYWwgMQpoaXR1bmdOb21vckJpdCgxMywgMSk7Ly8gIOKGkiAgbWVuZ2VsdWFya2FuIGhhc2lsIGJpbGFuZ2FuIGRlc2ltYWwgMwpoaXR1bmdOb21vckJpdCgxMywgMik7Ly8gIOKGkiAgbWVuZ2VsdWFya2FuIGhhc2lsIG51bGw=