El desplazamiento a nivel de bit ocurre en un espacio finito, aunque los valores negativos en realidad requieren un espacio infinito para representarse con toda precisión.
Si cambiamos en un 0, no solo el valor, sino también el signo puede cambiar:
0b0110 (6) -> 0b0011 (3)
0b1110 (-2) -> 0b0111 (7)
Esto se conoce como cambio lógico , ya que sigue estrictamente la definición lógica de "desplazamiento", es decir, moviendo los bits existentes una posición hacia el LSb.
Si cambiamos en el mismo valor que el MSb, cambiamos el valor pero conservamos el signo:
0b0110 (6) -> 0b0011 (3)
0b1110 (-2) -> 0b1111 (-1)
Esto se conoce como cambio aritmético , ya que el valor se divide (aproximadamente) entre 2, independientemente del signo inicial.