Imagem de fundo

Uma função, chamada converte, tem por objetivo converter um número inteiro na base deci...

Uma função, chamada converte, tem por objetivo converter um número inteiro na base decimal (d), recebido como parâmetro, em um número inteiro na base binária (b), isto é, um número que seja formado apenas pelos algarismos 0 e 1, como nos exemplos abaixo.


Exemplos:

converte(7) = 111

converte(12) = 1100

converte(16) = 10000


Admita que o inteiro (d), recebido como parâmetro, é tal que d>=0 e d<=1024.


Qual função executa essa conversão corretamente?

A

static long converte(int dec) {

---if(dec == 0)

-----return dec;

---long r=converte(dec/2);

---return dec % 2 + r * 10;

}

B

static long converte(int dec) {

---long bin=0;

---while(dec > 0) {

-----int r= dec % 2;

-----dec=dec / 2;

-----bin+=r << 2;

-----}

------- return bin;

}

C

static long converte(int dec) {

---if(dec > 0)

------return dec;

---long r=converte(dec%2);

------return dec / 2 + r * 10;

}

D

static long converte(int dec) {

long bin=0,fat=1;

do {

int r=dec % 2;

dec=dec/2; bin+=r * fat;

fat*=10;

} while(dec >= 0);

return bin;

}

E

static long converte(int dec) {

----long bin=0;

----for(long fat=1; dec > 0; fat*=10) {

--------int r=dec % 2;

-------dec=dec / 2;

-------bin+=r * fat;

}

-----return bin;

}