Qual a saida pra este código?
[code]
class Test {
public static void main(String[] args) {
for (int n=0; n<5000; n++)
if ((n & -n) == n)
System.out.println(n);
}
}[/code]
Qual a saida pra este código?
[code]
class Test {
public static void main(String[] args) {
for (int n=0; n<5000; n++)
if ((n & -n) == n)
System.out.println(n);
}
}[/code]
Acho que só imprimir uma vez (quando n for zero)
Saída: 0
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…
:?:
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.
[quote=“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.[/quote]
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?