"""
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
Fungsi: hitungNomorBit(int angka, int nomorBit)
"""
def hitung_nomor_bit(angka: int, nomor_bit: int):
# Cek nomorBit [0,1]
if nomor_bit not in [0, 1]:
return None
biner: list[int] = []
# Mengkonversi desimal ke biner
if angka == 0:
biner.append(0)
else:
while angka > 0:
biner.append(angka % 2)
angka //= 2
return biner.count(nomor_bit)
# Contoh penggunaan
print(hitung_nomor_bit(13, 0))
print(hitung_nomor_bit(13, 1))
print(hitung_nomor_bit(13, 2))
IiIiClJlcHJlc2VudGFzaSBiaWxhbmdhbiBiaW5lciBkYXJpIGFuZ2thIDEzIGFkYWxhaCAxMTAxCgpoaXR1bmdOb21vckJpdCgxMywgMCkgIOKGkiAgbWVuZ2VsdWFya2FuIGhhc2lsIGJpbGFuZ2FuIGRlc2ltYWwgMQpoaXR1bmdOb21vckJpdCgxMywgMSkgIOKGkiAgbWVuZ2VsdWFya2FuIGhhc2lsIGJpbGFuZ2FuIGRlc2ltYWwgMwpoaXR1bmdOb21vckJpdCgxMywgMikgIOKGkiAgbWVuZ2VsdWFya2FuIGhhc2lsIG51bGwKCkZ1bmdzaTogaGl0dW5nTm9tb3JCaXQoaW50IGFuZ2thLCBpbnQgbm9tb3JCaXQpCiIiIgoKZGVmIGhpdHVuZ19ub21vcl9iaXQoYW5na2E6IGludCwgbm9tb3JfYml0OiBpbnQpOgogICAgIyBDZWsgbm9tb3JCaXQgWzAsMV0KICAgIGlmIG5vbW9yX2JpdCBub3QgaW4gWzAsIDFdOgogICAgICAgIHJldHVybiBOb25lCiAgICAKICAgIGJpbmVyOiBsaXN0W2ludF0gPSBbXQogICAgCiAgICAjIE1lbmdrb252ZXJzaSBkZXNpbWFsIGtlIGJpbmVyCiAgICBpZiBhbmdrYSA9PSAwOgogICAgICAgIGJpbmVyLmFwcGVuZCgwKQogICAgZWxzZToKICAgICAgICB3aGlsZSBhbmdrYSA+IDA6CiAgICAgICAgICAgIGJpbmVyLmFwcGVuZChhbmdrYSAlIDIpCiAgICAgICAgICAgIGFuZ2thIC8vPSAyIAoKICAgIHJldHVybiBiaW5lci5jb3VudChub21vcl9iaXQpCgojIENvbnRvaCBwZW5nZ3VuYWFuCnByaW50KGhpdHVuZ19ub21vcl9iaXQoMTMsIDApKSAKcHJpbnQoaGl0dW5nX25vbW9yX2JpdCgxMywgMSkpICAKcHJpbnQoaGl0dW5nX25vbW9yX2JpdCgxMywgMikpICAK