#include <iostream>
#include <vector>
int hitungNomorBit(int angka, int nomorBit) {
// Konversi desimal ke biner
std::vector<int> biner;
// Jika angka negatif, perlakukan sebagai bilangan positif
if (angka < 0) {
angka = -angka;
}
// Melakukan konversi angka desimal ke biner
while (angka > 0) {
biner.push_back(angka % 2); // simpan bit di posisi terakhir
angka /= 2; // bagi dengan 2 untuk hilangkan bit yang telah dihitung
}
// Menghitung nomor bit berdasarkan nomor yang diminta
if (nomorBit < 0 || nomorBit >= biner.size()) {
return 0; // Jika nomorBit diluar jangkauan, kembalikan 0
}
int totalBit = 0;
// Hitung nomor bit yang diminta
for (int i = nomorBit; i < biner.size(); ++i) {
totalBit += biner[i];
}
return totalBit;
}
int main() {
std::cout << "hitungNomorBit(13, 0) = " << hitungNomorBit(13, 0) << std::endl; // Output: 1
std::cout << "hitungNomorBit(13, 1) = " << hitungNomorBit(13, 1) << std::endl; // Output: 3
std::cout << "hitungNomorBit(13, 2) = " << hitungNomorBit(13, 2) << std::endl; // Output: 0
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IGhpdHVuZ05vbW9yQml0KGludCBhbmdrYSwgaW50IG5vbW9yQml0KSB7CiAgICAvLyBLb252ZXJzaSBkZXNpbWFsIGtlIGJpbmVyCiAgICBzdGQ6OnZlY3RvcjxpbnQ+IGJpbmVyOwoKICAgIC8vIEppa2EgYW5na2EgbmVnYXRpZiwgcGVybGFrdWthbiBzZWJhZ2FpIGJpbGFuZ2FuIHBvc2l0aWYKICAgIGlmIChhbmdrYSA8IDApIHsKICAgICAgICBhbmdrYSA9IC1hbmdrYTsKICAgIH0KCiAgICAvLyBNZWxha3VrYW4ga29udmVyc2kgYW5na2EgZGVzaW1hbCBrZSBiaW5lcgogICAgd2hpbGUgKGFuZ2thID4gMCkgewogICAgICAgIGJpbmVyLnB1c2hfYmFjayhhbmdrYSAlIDIpOyAvLyBzaW1wYW4gYml0IGRpIHBvc2lzaSB0ZXJha2hpcgogICAgICAgIGFuZ2thIC89IDI7IC8vIGJhZ2kgZGVuZ2FuIDIgdW50dWsgaGlsYW5na2FuIGJpdCB5YW5nIHRlbGFoIGRpaGl0dW5nCiAgICB9CgogICAgLy8gTWVuZ2hpdHVuZyBub21vciBiaXQgYmVyZGFzYXJrYW4gbm9tb3IgeWFuZyBkaW1pbnRhCiAgICBpZiAobm9tb3JCaXQgPCAwIHx8IG5vbW9yQml0ID49IGJpbmVyLnNpemUoKSkgewogICAgICAgIHJldHVybiAwOyAvLyBKaWthIG5vbW9yQml0IGRpbHVhciBqYW5na2F1YW4sIGtlbWJhbGlrYW4gMAogICAgfQoKICAgIGludCB0b3RhbEJpdCA9IDA7CiAgICAKICAgIC8vIEhpdHVuZyBub21vciBiaXQgeWFuZyBkaW1pbnRhCiAgICBmb3IgKGludCBpID0gbm9tb3JCaXQ7IGkgPCBiaW5lci5zaXplKCk7ICsraSkgewogICAgICAgIHRvdGFsQml0ICs9IGJpbmVyW2ldOwogICAgfQoKICAgIHJldHVybiB0b3RhbEJpdDsKfQoKaW50IG1haW4oKSB7CiAgICBzdGQ6OmNvdXQgPDwgImhpdHVuZ05vbW9yQml0KDEzLCAwKSA9ICIgPDwgaGl0dW5nTm9tb3JCaXQoMTMsIDApIDw8IHN0ZDo6ZW5kbDsgLy8gT3V0cHV0OiAxCiAgICBzdGQ6OmNvdXQgPDwgImhpdHVuZ05vbW9yQml0KDEzLCAxKSA9ICIgPDwgaGl0dW5nTm9tb3JCaXQoMTMsIDEpIDw8IHN0ZDo6ZW5kbDsgLy8gT3V0cHV0OiAzCiAgICBzdGQ6OmNvdXQgPDwgImhpdHVuZ05vbW9yQml0KDEzLCAyKSA9ICIgPDwgaGl0dW5nTm9tb3JCaXQoMTMsIDIpIDw8IHN0ZDo6ZW5kbDsgLy8gT3V0cHV0OiAwCgogICAgcmV0dXJuIDA7Cn0=