Como eles funcionam ?
estava lendo num livro mas nao entendi muito
umas das coisas que indicava eh que o << poderia se comparar a uma multiplicação por 2
e o >> divide por 2, mas nem sempre eh assim,naum?
e tb tem >>> que as vezes produz o mesmo resutado do >>…
e eles levam em conta o numero em binario e desloca o numero(0 ou 1) pra esquerda e talz
enfim, mas nao sei como eles trabalham …
vlews pessoas por ajudar
representa o decimal 3 em números bináros. Se vc der um “shift p/ esquerda” (<<) ele vai ficar:
00000110
Que representa o decimal 6. Veja que 6 é o dobro de 3. Então um left shift (<<) significa o dobro do valor atual.
O reverso (>>) (right shift, shift p/ direita) pode ser encarado como inverso da multiplicação, que é a divisão.
Isso é como vc disse, “às vezes” ele produz o resultado esperado. O inesperado ocorre quando a operação acima resulta
em um valor que ultrapasse o limite suportado pelo tipo da variável
representa o decimal 3 em números bináros. Se vc der um “shift p/ esquerda” (<<) ele vai ficar:
00000110
Que representa o decimal 6. Veja que 6 é o dobro de 3. Então um left shift (<<) significa o dobro do valor atual.
O reverso (>>) (right shift, shift p/ direita) pode ser encarado como inverso da multiplicação, que é a divisão.
Isso é como vc disse, “às vezes” ele produz o resultado esperado. O inesperado ocorre quando a operação acima resulta
em um valor que ultrapasse o limite suportado pelo tipo da variável