El resultado en cada posición es 1 si el bit correspondiente de los dos operandos es 1, y 0 de lo contrario, por ejemplo: El AND puede ser usado para filtrar determinados bits, permitiendo que unos bits pasen y los otros no.El AND puede ser usado para determinar si un bit particular está encendido (1) o apagado (0).En este caso, los valores 0 enmascaran los bits que no son de interés).Para ello, primero aclaramos los 4 bits menos significativos de B con una operación AND, y así tener un espacio libre: Luego, aclaramos los bits de A que no queremos copiar, dejando solo los bits que queremos copiar: Ahora estamos listos para hacer el OR de A sobre B y combinar los 4 bits menos significativos de A sobre B: Ahora, el registro B tiene copiado los 4 bits menos significativos de A.Por ejemplo: A diferencia del NOT, que invierte todos los bits de un registro, el XOR bit a bit, o bitwise, puede ser usado para invertir selectivamente uno o más bits en un registro.En la serie de los procesadores x86 dicho bit queda almacenado en el flag del acarreo.Por ejemplo, supongamos que tenemos, en dos registros del tamaño de un byte, a dos dígitos hexadecimales (en representación binaria de 4 bits cada uno), y se quiere empaquetarlos en un solo byte, donde los 4 bits superiores es el hexadecimal más significativo y los 4 bits inferiores es el hexadecimal menos significativo: Para empaquetarlos en un solo byte, primero hay que desplazar el hexadecimal más significativo 4 posiciones hacia la izquierda.(Esto se hace con el desplazamiento lógico hacia la izquierda): Luego, se hace un OR de los dos valores que contienen los dígitos hexadecimales para que queden combinados en un solo byte: Ahora tenemos un byte con el valor de 1001 1010, el cual tiene los dos dígitos hexadecimales empaquetados.Los desplazamientos aritméticos son similares a los desplazamientos lógicos, solo que los aritméticos están pensados para trabajar sobre números enteros con signo en representación de complemento a dos en lugar de enteros sin signo.De hecho son dos nombres diferentes para exactamente la misma operación.De esta manera, se divide efectivamente por 2 al entero con signo.Si se insertara un 0 a la izquierda a un número negativo (como lo haría el desplazamiento lógico hacia la derecha), en primer lugar, este número negativo cambiaría de signo a positivo, y en segundo lugar, la interpretación de los bits restantes no tendrían sentido.Estos ejemplos utilizan un registro de 8 bits: Si el número binario es tratado como complemento a 1, entonces la misma operación de desplazamiento hacia la derecha resulta en una división por 2n redondeando hacia el cero.Esta operación es útil si es necesario conservar todos los bits existentes, y es frecuentemente usada en criptografía digital.El bit que sale por un extremo va al flag del acarreo, y el bit original que estaba en el flag del acarreo entra al registro por el extremo opuesto.Si se fija el flag del acarreo de antemano, una rotación simple a través del acarreo puede simular un desplazamiento lógico o aritmético de una posición.Con rotación a través del acarreo, ese bit es “almacenado” en el flag del acarreo durante el primer desplazamiento hacia la derecha sobre el registro de la izquierda, listo para ser desplazado al registro de la derecha usando una simple rotación con acarreo hacia la derecha y sin usar ninguna preparación extra.
Desplazamiento lógico hacia la derecha
Desplazamiento aritmético hacia la izquierda
Desplazamiento aritmético hacia la derecha
Desplazamiento o rotación circular hacia la izquierda
Desplazamiento o rotación circular hacia la derecha
Rotación hacia la izquierda a través del bit del acarreo
Rotación hacia la derecha a través del bit del acarreo