fork download
  1. <?php
  2. function hitungNomorBit($angka, $nomorBit) {
  3. // Validasi input
  4. if ($angka < 0 || $nomorBit < 0) {
  5. return null; // Tidak valid jika angka atau nomorBit negatif
  6. }
  7.  
  8. // Konversi angka desimal ke biner secara manual
  9. $biner = "";
  10. $n = $angka;
  11. while ($n > 0) {
  12. $biner = ($n % 2) . $biner; // Ambil sisa pembagian 2 sebagai bit (0 atau 1)
  13. $n = (int)($n / 2); // Bagi angka dengan 2 dan ambil bagian integer
  14. }
  15.  
  16. // Jika biner kosong, berarti angka adalah 0
  17. if ($biner === "") {
  18. $biner = "0";
  19. }
  20.  
  21. // Hitung jumlah bit berdasarkan nomorBit yang diminta
  22. $bitCount = 0;
  23. for ($i = 0; $i < strlen($biner); $i++) {
  24. if ((int)$biner[$i] === $nomorBit) {
  25. $bitCount++;
  26. }
  27. }
  28.  
  29. // Jika nomorBit bukan 0 atau 1, return null
  30. if ($nomorBit !== 0 && $nomorBit !== 1) {
  31. return null;
  32. }
  33.  
  34. return $bitCount;
  35. }
  36.  
  37. // Contoh penggunaan
  38. echo hitungNomorBit(13, 0) . "\n"; // Output: 1
  39. echo hitungNomorBit(13, 1) . "\n"; // Output: 3
  40. echo hitungNomorBit(13, 2) . "\n"; // Output: null
  41. ?>
  42.  
Success #stdin #stdout 0.04s 25484KB
stdin
Standard input is empty
stdout
1
3