Saltar al contenido principal
Library homepage
 

Text Color

Text Size

 

Margin Size

 

Font Type

Enable Dyslexic Font
LibreTexts Español
  • No tiene permisos para ver esta página; intente iniciar sesión.
  • No tiene permisos para ver esta página; intente iniciar sesión.

4.4: Operaciones bit a bit

( \newcommand{\kernel}{\mathrm{null}\,}\)

A veces te gustaría realizar operaciones bit a bit en lugar de matemáticas ordinarias. Por ejemplo, ¿y si quieres lógicamente Y dos variables, poco a poco? Las operaciones bitwise son muy comunes cuando se programan microcontroladores como un medio para establecer, borrar y probar bits específicos en registros de control (por ejemplo, establecer un pin específico en un puerto digital para el modo de lectura en lugar del modo de escritura). C tiene una serie de operadores bit a bit. Ellos son:

Tabla4.4.1: Operadores bit a bit.
& Y
| O
^ XOR
~ El Complemento
>> Cambio a la derecha
<< Mayús a la izquierda

Tenga en cuenta el doble uso de & para “dirección de” y ahora AND. La operación unaria es siempre “dirección de”, y la operación binaria es siempre Y, por lo que a & b no implicaría la dirección de b. Si quisieras AND x con y, desplaza el resultado 2 lugares a la izquierda y asignas el resultado a z, usarías:

1z = (x&y)<<2;

Veamos algunos ejemplos. Supongamos que las variables X, Y y Z son caracteres sin signo. X e Y se establecen en 13 y 134, respectivamente. En hexadecimal, eso es 0x0d y 0x86 para patrones de bits de 00001101 y 10000110.

1Z = X<<3;    // Z is 01101000 or 0x68
2Z = X>>1;    // Z is 00000110 or 0x06
3Z = ~X;      // Z is 11110010 or 0xf2
4Z = X|Y;     // Z is 10001111 or 0x8f
5Z = X&Y;     // Z is 00000100 or 0x04
6Z = X^Y;     // Z is 10001011 or 0x8b

This page titled 4.4: Operaciones bit a bit is shared under a CC BY-NC-SA 4.0 license and was authored, remixed, and/or curated by James M. Fiore via source content that was edited to the style and standards of the LibreTexts platform.

Support Center

How can we help?