Deslocamento de bits

1 resposta
S

Porque quando vou realizar um deslocamento de bits para equerda sem sinal do numero inteiro 400 com 31 posições deslocadas o resultado é zero, e com 32 posições ele retorna o valor 400?
Alguém pode me ajudar?

1 Resposta

CWeiler

Existe um erro na sua afirmação de deslocamento sem sinal para a esquerda (unsigned left shift). Mas nos valores de exemplo o comportamento será o mesmo para todos os deslocamentos que você tentar.

Este comportamento é definido pela linguagem como protocolo de segurança, você não pode fazer um deslocamento de grandeza maior que o tipo sendo deslocado, sendo o excedente apenas desconsiderado na operação.

400 << 32 é o mesmo que 400 << 0.

Criado 8 de agosto de 2016
Ultima resposta 9 de ago. de 2016
Respostas 1
Participantes 2