Está en la página 1de 2

SNCHEZ FLORES OSCAR ISAAC

OPERADORES A NIVEL DE BITS


El operador "&" corresponde a la operacin lgica "AND", o en lgebra de Boole
al operador "", compara los bits uno a uno, si ambos son "1" el resultado es
"1", en caso contrario "0".
El operador "^" corresponde a la operacin lgica "OR exclusivo", compara los
bits uno a uno, si ambos son "1" o ambos son "0", el resultado es "0", en caso
contrario "1".
El operador "|" corresponde a la operacin lgica "OR", o en lgebra de Boole al
operador "+", compara los bits uno a uno, si uno de ellos es "1" el resultado es
"1", en caso contrario "0".
El operador "~", (se obtiene con la combinacin de teclas ALT+126,
manteniendo pulsada la tecla "ALT", se pulsan las teclas "1", "2" y "6" del
teclado numrico, o bien con la combinacin de teclas AltGr+4 seguido de un
espacio), corresponde a la operacin lgica "NOT", se trata de un operador
unitario que invierte el valor de cada bit, si es "1" da como resultado un "0", y
si es "0", un "1".
El operador "<<" realiza un desplazamiento de bits a la izquierda del valor de
la izquierda, introduciendo "0" por la derecha, tantas veces como indique el
segundo operador; equivale a multiplicar por 2 tantas veces como indique el
segundo operando.
El operador ">>" realiza un desplazamiento de bits a la derecha del valor de la
izquierda, introduciendo "0" por la izquierda, tantas veces como indique el
segundo operador; equivale a dividir por 2 tantas veces como indique el
segundo operando.
Tablas de verdad:

Operador Operador
OR
OR
AND
NOT
1
2
exclusivo inclusivo
E1 &
E1
E2
E1 ^ E2
E1 | E2
~E1
E2
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
Hexadecimal
0
1
2
3
4

Binario
0000
0001
0010
0011
0100

Hexadecimal
8
9
A
B
C

Binario
1000
1001
1010
1011
1100

5
6
7

0101
0110
0111

D
E
F

1101
1110
1111

int a, b, c;
a = 0xd3; // = 11010011
b = 0xf5; // = 11110101
c = 0x1e; // = 00011110
d
d
d
d
d
d

=
=
=
=
=
=

a | b;
b & c;
a ^ c;
~c;
c << 3
a >> 4

//
//
//
//
//
//

11010011 | 11110101 = 11110111 -> 0xf7


11110101 & 00011110 = 00010100 -> 0x14
11010011 ^ 00011110 = 11001101 -> 0xcd
~00011110 = 11100001 -> 0xe1
00011110 << 3 = 11110000 ->; 0xf0
11010011 >> 4 = 00001101 ->; 0x0d

También podría gustarte