Logici (bit a bit)
Operatore | Uso | Descrizione |
---|
& | op1 & op2 | AND |
---|
| | op1 | op2 | OR |
---|
^ | op1 ^ op2 | XOR |
---|
~ | ~op | NOT |
---|
Di shift
Operatore |
Uso |
Descrizione |
<< |
op1 << op2 |
Fa scorrere i bit di op1 a sinistra, op2 volte |
>> |
op1 >> op2 |
Fa scorrere i bit di op1 a destra, op2 volte |
>>> |
op1 >>> op2 |
Fa scorrere i bit di op1 a destra, op2 volte (senza segno) |
Esempi
In base 10 |
In complemento a 2 |
10 | 3 = 11 |
(... 00001010) |
(... 00000011) =
----------------
(... 00001011) |
10 & 3 = 2 |
(... 00001010) &
(... 00000011) =
----------------
(... 00000010) |
10 ^ 3 = 9 |
(... 00001010) ^
(... 00000011) =
----------------
(... 00001001) |
10 >> 2 = 2 |
(... 00001010) >> 2
(... 00000010) |
10 << 2 = 40 |
(... 00001010) << 2
(... 00101000) |
Se il numero è negativo interviene il complemento a 2...
In base 10 |
In complemento a 2 |
~10 = -11 |
~(00000000 00000000 00000000 00001010)
(11111111 11111111 11111111 11110101) |
-10 << 2 = -40 |
(11111111 11111111 11111111 11110110) << 2
(11111111 11111111 11111111 11011000) |
-10 >> 2 = -3 |
(11111111 11111111 11111111 11110110) >> 2
(11111111 11111111 11111111 11111101) |
-10 >>> 2 = 1073741821 |
(11111111 11111111 11111111 11110110) >>> 2
(00111111 11111111 11111111 11111101) |
|