Shift Operators

2 respostas
T

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

:smiley:

2 Respostas

LuksS

Multiplicação:
Observe esse byte:

00000011

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

LuksS

Multiplicação:
Observe esse byte:

00000011

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

Criado 15 de janeiro de 2009
Ultima resposta 16 de jan. de 2009
Respostas 2
Participantes 2