São operadores de bit a bit. :)
Hum... Melhor ir as explicações:
- O operador "<<" desloca o valor bit a bit de uma variável, da direita para esquerda. Exemplo:
var inteiro = 1; //(64 bits) -> ...00000001 (1)
alert("Número original: " + inteiro);
inteiro = inteiro << 1; //descola uma "casa" para a esquerda (64 bits) -> ...00000010 (2)
alert("Número deslocado uma casa para a esquerda: " + inteiro);
- E o operador ">>" descola o valor bit a bit de uma variável, da esquerda para direita. Exemplo:
var inteiro = 4; //(64 bits) -> ...00000100 (4)
alert("Número original: " + inteiro);
inteiro = inteiro >> 2; //descola duas "casas" para a direita (64 bits) -> ...00000001 (1)
alert("Número deslocado duas casas para a direita: " + inteiro);
Se formos pensar bem, estes operadores "multiplicam" ("<<") ou "dividem" (">>") o número por dois. Isso acontece por causa que os computadores trabalham com números binários ("bi" igual a "dois", entendeu? :P )
Até mais!
Nenhum comentário:
Postar um comentário