El desplazamiento binario como suena el nombre es una operación en la que desplaza los bits de un número. Existen principalmente dos operaciones: desplazamiento aritmético a la derecha (>>) y desplazamiento aritmético a la izquierda (<<).
Los números se almacenan en la memoria como una serie de bits. Por ejemplo, cuando toma un entero ( tipo int) , se representan como 32 bits en la memoria. Tome 8, en binario se representa así:
8 = 0000 0000 0000 0000 0000 0000 1000
desplazamiento aritmético a la derecha
- ¿Cuál es la elección ideal de algoritmos, bibliotecas en PNL y aprendizaje automático para construir un bot de chat?
- Cómo entender un algoritmo de búsqueda CSP
- ¿Cómo y dónde recopilar datos estadísticos sobre el comercio algorítmico?
- ¿Cómo se determina la longitud de una matriz en C?
- ¿Puedo comenzar a aprender visión por computadora sin pasar por algoritmos de aprendizaje automático?
si haces 8 >> 1, desplazas todos los bits de 8 una posición a la derecha, lo que resulta en:
0000 0000 0000 0000 0000 0000 0100 = 4
Una cosa a tener en cuenta aquí es que desplazar un número a la derecha es como si se dividiera por una potencia de 2 (4 = (8/2)).
desplazamiento aritmético a la izquierda
En cambio, si haces 8 << 1, desplazas todos los bits de 8 una posición a la izquierda, lo que resulta en:
0000 0000 0000 0000 0000 0001 0000 = 16
En ella notamos que desplazar un número a la izquierda es como si multiplicaras por una potencia de 2 (16 = 8 * 2).
Una de las aplicaciones más importantes del desplazamiento binario es cuando desea realizar operaciones bit a bit; establecer o borrar un bit particular de un número, por ejemplo. Supongamos que tiene un número binario y desea borrar su tercer bit (desea tener 0 en el tercer bit), así es como puede hacerlo:
0101 = 5 0101 y (~ (1 << 2)) = 0101 y (~ (0100)) = 0101 y 1011 = 0001
Estas operaciones se usan mucho en la programación del sistema cuando se realizan manipulaciones particulares para acceder a registros o escribir un bit particular que tiene un uso específico.