Pocowise OperaTores en C: AND, OR, XOR, Shift & Complementar

¿Qué son los bits?wise Operatores?

Pocowise Operatoros se utilizan para manipular datos a nivel de bits, también llamada programación a nivel de bits. Pocowise operapruebas en uno o más patrones de bits o números binarios al nivel de sus bits individuales. Se utilizan en cálculos numéricos para acelerar el proceso de cálculo.

Following es la lista de bitswise operaTores proporcionados por el lenguaje de programación 'C':

Operator Sentido
& Pocowise Y operator
| Pocowise OR operator
^ Pocowise exclusivo o operator
~ Complemento binario a uno Operator es unario operator
<< Unidades shift operator
>> Derecha shift operator

Pocowise operaLos controladores no se pueden aplicar directamente a tipos de datos primitivos como float, double, etc. Recuerda siempre una cosa quewise operaLos controladores se utilizan principalmente con el tipo de datos entero debido a su compatibilidad.

El pocowise lógico operaLos operadores trabajan con los datos bit a bit, comenzando desde el bit menos significativo, es decir, el bit LSB, que es el bit más a la derecha, y avanzando hacia el MSB (bit más significativo), que es el bit más a la izquierda.

El resultado del cálculo del bit.wise lógico operators se muestra en la tabla que figura a continuación.

x y x & y x | allí x^y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Pocowise Y

Este es uno de los bits lógicos más utilizados.wise operatores. Está representado por un único signo comercial (&). Se escriben dos expresiones enteras a cada lado de (&) operacolina.
El resultado del bit.wise Y operación es 1 si ambos bits tienen el valor 1; otrowise, el resultado es siempre 0.

Consideremos que tenemos 2 variables op1 y op2 con valores de la siguiente manera:

Op1 = 0000 1101
Op2 = 0001 1001

El resultado del Y operación sobre las variables op1 y op2 será

Result = 0000 1001

Como podemos ver, se comparan dos variables poco a poco. Siempre que el valor de un bit en ambas variables sea 1, el resultado será 1 o 0.

Pocowise OR

Está representado por un único signo de barra vertical (|). Se escriben dos expresiones enteras a cada lado de (|) operacolina.

El resultado del bit.wise OR operación es 1 si al menos una de las expresiones tiene el valor 1; otrowise, el resultado es siempre 0.

Consideremos que tenemos 2 variables op1 y op2 con valores de la siguiente manera:

Op1 = 0000 1101
Op2 = 0001 1001

El resultado del OR operación sobre las variables op1 y op2 será

Result = 0001 1101

Como podemos ver, se comparan dos variables poco a poco. Siempre que el valor de un bit en una de las variables sea 1, entonces el resultado será 1 o 0.

Pocowise Exclusivo o

Está representado por un símbolo (^). Se escriben dos expresiones enteras a cada lado de (^) operacolina.

El resultado del bit.wise Exclusivo o operación es 1 si sólo una de las expresiones tiene el valor 1; otrowise, el resultado es siempre 0.

Consideremos que tenemos 2 variables op1 y op2 con valores de la siguiente manera:

Op1 = 0000 1101
Op2 = 0001 1001

El resultado del XOR operación sobre las variables op1 y op2 será

Result = 0001 0100

Como podemos ver, se comparan dos variables poco a poco. Siempre que solo una variable tenga el valor 1, el resultado será 0; de lo contrario, el resultado será 0.

Escribamos un programa simple que demuestre bits.wise lógico operaTors.

#include <stdio.h>
int main() 
{
int a = 20;	/* 20 = 010100 */  
int b = 21;	/* 21 = 010101 */
int c = 0;           

c = a & b;       /* 20 = 010100 */ 
printf("AND - Value of c is %d\n", c );

c = a | b;       /* 21 = 010101 */
printf("OR - Value of c is %d\n", c );

c = a ^ b;       /* 1 = 0001 */
printf("Exclusive-OR - Value of c is %d\n", c );

getch();
}

Salida:

AND - Value of c is 20
OR - Value of c is 21
Exclusive-OR - Value of c is 1

Pocowise shift operatoros

El pocowise shift operaLos tores se utilizan para mover/shift los patrones de bits hacia el lado izquierdo o derecho. La izquierda y la derecha son dos. shift operators proporcionados por 'C' que se representan de la siguiente manera:

Operand << n (Left Shift)
Operand >> n (Right Shift)

Aquí,

  • an operand es una expresión entera sobre la cual tenemos que realizar la shift operación.
  • 'n' es el número total de posiciones de bits que tenemos que shift en la expresión entera.

La izquierda shift operación voluntad shift el número 'n' de bits al lado izquierdo. Los bits más a la izquierda de la expresión aparecerán y se completarán n bits con el valor 0 en el lado derecho.

El shift operación voluntad shift el número 'n' de bits al lado derecho. Los 'n' bits más a la derecha de la expresión aparecerán y el valor 0 se completará en el lado izquierdo.

Ejemplo: x es una expresión entera con datos 1111. Después de realizar shift operación el resultado será:

x << 2 (left shift) = 1111<<2 = 1100
x>>2 (right shift) = 1111>>2 = 0011

Shifts operaLos factores se pueden combinar y luego se pueden usar para extraer los datos de la expresión entera. Escribamos un programa para demostrar el uso de bits.wise shift operaTors.

#include <stdio.h>
int main() {
int a = 20;	/* 20 = 010100 */  
int c = 0;           

c = a << 2;	/* 80 = 101000 */
printf("Left shift - Value of c is %d\n", c );

c = a >> 2;	/*05 = 000101 */
printf("Right shift - Value of c is %d\n", c );
return 0;
}

Salida:

Left shift - Value of c is 80
Right shift - Value of c is 5

Después de realizar la izquierda shift operación el valor pasará a ser 80 cuyo equivalente binario es 101000.

Después de realizar el derecho shift operación, el valor pasará a ser 5 cuyo equivalente binario es 000101.

Pocowise complementar operator

El pocowise El complemento también se llama complemento de uno. operator ya que siempre toma solo un valor o un operaDakota del Norte. es unario operacolina.

Cuando realizamos complemento en cualquier bit, todos los 1 se convierten en 0 y viceversa.

Si tenemos una expresión entera que contiene 0000 1111, luego de ejecutar el bitwise complementar operación el valor pasará a ser 1111 0000.

Pocowise complementar operator se indica con el símbolo tilde (~).

Escribamos un programa que demuestre la implementación de bit.wise complementar operacolina.

#include <stdio.h>
int main() {
int a = 10;	/* 10 = 1010 */  
int c = 0;           
c = ~(a);      
printf("Complement - Value of c is %d\n", c );
return 0;
}

Salida:

Complement - Value of c is -11

Aquí tenéis otro programa, con un ejemplo de todos los operadedos de los pies discutidos hasta ahora:

#include <stdio.h>
main() {
unsigned int x = 48;	/* 48 = 0011 0000 */  
unsigned int y = 13;	/* 13 = 0000 1101 */
int z = 0;           

z =x & y;       /* 0 = 0000 0000 */ 
printf("Bitwise AND Operator - x & y = %d\n", z );

z = x | y;       /* 61 = 0011 1101 */
printf("Bitwise OR Operator - x | y = %d\n", z );

z= x^y;       /* 61 = 0011 1101 */
printf("Bitwise XOR Operator- x^y= %d\n", z);

z = ~x;          /*-49 = 11001111 */
printf("Bitwise One's Complement Operator - ~x = %d\n", z);

z = x << 2;     /* 192 = 1100 0000 */
printf("Bitwise Left Shift Operator x << 2= %d\n", z );

z= x >> 2;     /* 12 = 0000 1100 */
printf ("Bitwise Right Shift Operator x >> 2= %d\n", z );}

Después de compilar y ejecutar el programa, produce lo siguientewing resultado:

Bitwise AND Operator - x & y = 0
Bitwise OR Operator - x | y = 61
Bitwise XOR Operator- x^y= 61
Bitwise One's Complement Operator - ~x = -49
Bitwise Left Shift Operator x << 2= 192
Bitwise Right Shift Operator x >> 2= 12

Resumen

  • Pocowise operaLos tores son especiales operaconjunto de controladores proporcionado por 'C.'
  • Se utilizan en programación a nivel de bits.
  • Estas operaLos controladores se utilizan para manipular bits de una expresión entera.
  • Lógico, shift y complemento son tres tipos de bitswise operaTors.
  • Pocowise complementar operator se utiliza para invertir los bits de una expresión.