Uma de operadores

4 respostas
luiz_ross

Qual a saida pra este código?

class Test {
      public static void main(String[] args) {
             for (int n=0; n<5000; n++)
                  if ((n & -n) == n)
                  System.out.println(n);
       }
}

4 Respostas

B

Acho que só imprimir uma vez (quando n for zero)
Saída: 0

P

bem estranha, mas acho q naum imprime só o 0. pelo menos o 1 também será impresso. 11111111 & 00000001 == 00000001. Aí tem q ir fazendo em cada número. Acho q é isso…
:?:

Ironlynx

depois de 0 e 1 o AND SOBRE BITS do if só exibirá os exponenciais de 2
até o mais próximo de 5000 2^12 q é 4096.

P

“Ironlynx”:
depois de 0 e 1 o AND SOBRE BITS do if só exibirá os exponenciais de 2
até o mais próximo de 5000 2^12 q é 4096.

Os exponenciais de 2 devem cair nessa regra do 1. por exemplo:

11111000 = -8;

mas os q naum saum exponenciais, naum necessariamente tem seus valores negativos totalmente precedidos de 1ns. oq vcs acham?

Criado 23 de agosto de 2003
Ultima resposta 25 de ago. de 2003
Respostas 4
Participantes 4