public class Main {
public static int hitungNomorBit (int angka, int nomorBit)
{
int temp = angka;
int panjang = 0;
if (temp ==0) {
panjang = 1;
}else {
while (temp > 0 ) {
temp = temp / 2;
panjang++;
}
}
if (nomorBit < 0 || nomorBit >= panjang) {
return -1;
}
int[] bit = new int[panjang];
temp = angka;
for ( int i = panjang -1; i >=0; i--){
bit[i] = temp % 2;
temp = temp / 2;
}
if (bit[nomorBit] == 0 ) {
return -1;
}
int hasil = 0;
for (int i = 0; i<= nomorBit; i++ ) {
hasil = hasil * 2 + bit[i];
}
return hasil;
}
public static void main
(String[] args
) { int hasil1=hitungNomorBit (13, 0);
int hasil2=hitungNomorBit (13, 1);
int hasil3=hitungNomorBit (13, 2);
System.
out.
println(hasil1
== -1 ? "null" : hasil1
); System.
out.
println(hasil2
== -1 ? "null" : hasil2
); System.
out.
println(hasil3
== -1 ? "null" : hasil3
); ;
}
}
CnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgaW50IGhpdHVuZ05vbW9yQml0IChpbnQgYW5na2EsIGludCBub21vckJpdCkKICAgIHsKICAgICAgICBpbnQgdGVtcCA9IGFuZ2thOwogICAgICAgIGludCBwYW5qYW5nID0gMDsKCiAgICAgICAgaWYgKHRlbXAgPT0wKSB7CiAgICAgICAgICAgIHBhbmphbmcgPSAxOwogICAgICAgIH1lbHNlIHsKICAgICAgICAgICAgd2hpbGUgKHRlbXAgPiAwICkgeyAKICAgICAgICAgICAgICAgIHRlbXAgPSB0ZW1wIC8gMjsKICAgICAgICAgICAgICAgIHBhbmphbmcrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAobm9tb3JCaXQgPCAwIHx8IG5vbW9yQml0ID49IHBhbmphbmcpIHsgCiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaW50W10gYml0ID0gbmV3IGludFtwYW5qYW5nXTsKICAgICAgICB0ZW1wID0gYW5na2E7CiAgICAgICAgZm9yICggaW50IGkgPSBwYW5qYW5nIC0xOyBpID49MDsgaS0tKXsKICAgICAgICAgICAgYml0W2ldID0gdGVtcCAlIDI7CiAgICAgICAgICAgIHRlbXAgPSB0ZW1wIC8gMjsKICAgICAgICB9CiAgICAgICAgaWYgKGJpdFtub21vckJpdF0gPT0gMCApIHsgCiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaW50IGhhc2lsID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaTw9IG5vbW9yQml0OyBpKysgKSB7IAogICAgICAgICAgICBoYXNpbCA9IGhhc2lsICogMiArIGJpdFtpXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhhc2lsOwogICAgfQogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludCBoYXNpbDE9aGl0dW5nTm9tb3JCaXQgKDEzLCAwKTsKICAgICAgICBpbnQgaGFzaWwyPWhpdHVuZ05vbW9yQml0ICgxMywgMSk7CiAgICAgICAgaW50IGhhc2lsMz1oaXR1bmdOb21vckJpdCAoMTMsIDIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihoYXNpbDEgPT0gLTEgPyAibnVsbCIgOiBoYXNpbDEpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihoYXNpbDIgPT0gLTEgPyAibnVsbCIgOiBoYXNpbDIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihoYXNpbDMgPT0gLTEgPyAibnVsbCIgOiBoYXNpbDMpOwogICAgICAgIDsKICAgIH0KfQ==