a&b, a|b, a^b, el valor de esta expresión se calcula en la memoria,
Así que realizamos cálculos sobre sus complementos .
a&b, a|b, a^b, sus operandos deben ser enteros .
Tabla de contenido
bit a bit Y&
&--Por y
Si el bit binario correspondiente tiene 0, es 0, y si dos de ellos son 1 al mismo tiempo, es 1.
#include<stdio.h>
int main()
{int a=3;
//00000000000000000000000000000011——原码、反码、补码
int b=-5;
//10000000000000000000000000000101——原码
//11111111111111111111111111111010——反码
//11111111111111111111111111111011——补码
int c=a&b;
//00000000000000000000000000000011——a补码
//11111111111111111111111111111011——b补码
//00000000000000000000000000000011——c补码
printf("%d\n",c);
return 0;
}
bit a bit O |
|——por bit binario o
Si el bit binario correspondiente tiene 1, entonces es 1, y si dos de ellos son 0 al mismo tiempo, es 0.
#include<stdio.h>
int main()
{int a=3;
//00000000000000000000000000000011——原码、反码、补码
int b=-5;
//10000000000000000000000000000101——原码
//11111111111111111111111111111010——反码
//11111111111111111111111111111011——补码
int c=a|b;
//00000000000000000000000000000011——a补码
//11111111111111111111111111111011——b补码
//11111111111111111111111111111011——c补码
//10000000000000000000000000000101——c原码
printf("%d\n",c);
return 0;
}
Bit a bit XOR^
Los bits binarios correspondientes son 0 si son iguales y 1 si son diferentes.
#include<stdio.h>
int main()
{int a=3;
//00000000000000000000000000000011——原码、反码、补码
int b=-5;
//10000000000000000000000000000101——原码
//11111111111111111111111111111010——反码
//11111111111111111111111111111011——补码
int c=a^b;
//00000000000000000000000000000011——a补码
//11111111111111111111111111111011——b补码
//11111111111111111111111111111000——c补码
//10000000000000000000000000001000——c原码
printf("%d\n",c);
return 0;
}
El operador XOR tiene las siguientes fórmulas:
1.a^a=0 2.0^a=a 3. XOR admite la ley conmutativa
ejemplo:
intercambia los valores de dos números
#include<stdio.h>
int main()
{int a=3;
int b=-5;
printf("%d %d\n",a,b);
a=a^b;
b=a^b;//a^b^b=a^0=a
a=a^b;//a^b^a=b^0=b
printf("%d %d\n",a,b);
return 0;
¡Pero el operador XOR solo se puede usar para el intercambio de números enteros!