Definición - ¿Qué significa Bit Shifting?
El desplazamiento de bits es una operación que se realiza en todos los bits de un valor binario en el que se mueven un número determinado de lugares hacia la izquierda o hacia la derecha. El desplazamiento de bits se utiliza cuando el operando se utiliza como una serie de bits en lugar de como un todo. En otras palabras, el operando se trata como bits individuales que representan algo y no como un valor.
El cambio de bits se usa a menudo en programación y tiene al menos una variación en cada lenguaje de programación.
El desplazamiento de bits también se puede conocer como una operación bit a bit.
Techinfo explica el cambio de bits
Hay dos variaciones para el desplazamiento de bits, desplazamiento a la derecha y desplazamiento a la izquierda, y se define además por el número de lugares en los que debe producirse el desplazamiento. Por ejemplo, desplazando el operando un valor a la izquierda o desplazando los valores de los bits "n" a la derecha.
También hay dos tipos de desplazamiento de bits, lógicos y aritméticos. El desplazamiento de bits lógico puede resultar útil para multiplicar o dividir enteros sin signo por potencias de dos. Por ejemplo, si el valor "0001" o "1" se desplaza hacia la izquierda, se convierte en "0010" o "2", si se desplaza nuevamente hacia la izquierda se convierte en "0100" o "4". El cambio a la derecha tiene el efecto contrario de dividir el valor por dos por turno. En la mayoría de los casos, el desplazamiento se trata como circular, por lo que cuando se desplaza hacia la izquierda, el valor más a la izquierda se convierte en el valor más a la derecha y viceversa.
El desplazamiento lógico a la izquierda y el desplazamiento aritmético a la izquierda tienen el mismo efecto, por lo que Java solo tiene un operador de desplazamiento a la izquierda (<<). El desplazamiento aritmético a la derecha es (>>) mientras que el lógico es (>>>). En C y C ++, solo hay un operador de desplazamiento a la derecha (>>); el tipo de cambio a realizar está determinado por el tipo de número entero que se cambia. Los enteros con signo se desplazan mediante aritmética, mientras que el desplazamiento de bits lógico se utiliza en enteros sin signo. El desplazamiento de bits también se usa mucho en la programación de ensamblajes porque los microcontroladores y microprocesadores generalmente se basan en indicadores, que están representados por bits individuales. Básicamente, debido a que el sistema de números binarios se utiliza en la programación en lenguaje ensamblador, el desplazamiento de bits se convierte en un operador de uso común.