Cambios binarios (C++)


Operaciones con bits

Todos los números en la memoria de la computadora se almacenan en forma binaria, es decir como una secuencia de 0 y 1. Para almacenar números en la memoria de la computadora, se utiliza una cantidad finita de bits. Debido a este número, la computadora tiene un rango limitado y los resultados del cálculo pueden ser inexactos. Un número entero se puede almacenar en 8, 16, 32 o 64 bits de memoria. Cada bit adicional amplía el rango de valores posibles en 2. 
Las operaciones con números positivos y negativos se realizan en el procesador utilizando los mismos algoritmos.

Con la ayuda de operaciones lógicas bit a bit, puede controlar bits individuales de los registros del procesador y dispositivos externos. 
 



Operación Y
Con la operación "Y" puede restablecer (poner a cero) bits para los que la máscara es 0. 
 
Máscara – una constante que define el alcance de la operación lógica en los bits de un número de varios bits.

D - datos, M - máscara

 

Operación O
La operación "OR" se puede utilizar para escribir un 1 en los bits para los que la máscara es 1.

 

Operación exclusivo O
¡Usando la operación "XOR" puedes invertir bits para los cuales la máscara es 1!


 

Desplazamiento a la izquierda
Un desplazamiento a la izquierda de 1 bit lógico (bit a bit) duplica un entero positivo.

 

Desplazamiento a la derecha
Booleano (bit a bit) .desplazar a la derecha 1  divide un entero positivo por 2.


Dado que un desplazamiento a la derecha establece el bit de signo en las posiciones vacantes, el signo de x se puede determinar desplazando a la derecha toda la longitud de la variable.

Operación C++ Destino
a & b Bitbit Y para a y b
a | b Bitbit OR para a y b
a ^ b OR para a y b
~a Inversión de bits para a
un << b Desplazamiento bit a bit a la izquierda de a a b
a >> b Desplazamiento bit a bit a la derecha de a a b