:?: Alguém poderia me explicar o que faz esse código? :idea:
System.out.println(1<<1); imprime 2
System.out.println(1<<2); imprime 4
System.out.println(1<<3); imprime 8
System.out.println(2>>>1); imprime 1
Não estou sacando a lógica disso…
:?: Alguém poderia me explicar o que faz esse código? :idea:
System.out.println(1<<1); imprime 2
System.out.println(1<<2); imprime 4
System.out.println(1<<3); imprime 8
System.out.println(2>>>1); imprime 1
Não estou sacando a lógica disso…
Isso é deslocamento de bits.
1 em binário é 0001
Quando você faz 1 << 1 desloca um bit para a esquerda ficando 0010
que em decimal é 2.
Complentando a pergunta, em que eu posso utilizar isso como vantagem?
de cara nao tinha entendido muito bem isso, mas prestando atencao na respostado marcus eu entendi, como eu me conheco e se isso tivesse caido em uma prova de certificação eu teria rodado bonito, nao teria pensado nisso nao, respondendo a pergunta do tRuNkSnEt isso seria mais um exercicio de logica do que teria alguma aplicação em algum lugar, se eu estiver errado que vcs comentem, pois so vi isso como utilidade.
abs.
Vc usa muito isso quando vc está trabalhando no nível dos bits.
Exemplos:
1 0 1 0 0 1 1 1
7 6 5 4 3 2 1 0
Quero setar o bit 3, que está 0, então como é que eu faço ???
// b é um byte...
b = (1 << 3 | b);
private byte [] getHeader(int x) {
byte[] aryx = new byte[4];
aryx[0] = (byte) ((x >> 24) & 0xFF);
aryx[1] = (byte) ((x >> 16) & 0xFF);
aryx[2] = (byte) ((x >> 8) & 0xFF);
aryx[3] = (byte) (x & 0xFF);
return aryx;
Eu uso isso para implementar um protocolo com payload, isto é, os primeiros 4 bytes da comunicação servem para dizer qual é o tamanho do objeto que está vindo. Java NIO só trabalha com bytes e não tem aquela mamata de ObjectInputStream com socket.

saoj,
vc tem razao disso, tinha me esquecido, hj eu continuo com sono, sem pensar muito !!! mas esclareceu uma duvida minha tb ! !!
rsrsr
Pode ser utilizado para o tratamento de imagens também, quando você precisa, por exemplo, fazer um espelhamento de uma determinada imagem.