|
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) |
|