1. &Operatore bit a bit
Abbiamo detto in precedenza che tutti i dati sono archiviati in memoria in una rappresentazione binaria. Quindi, molto tempo fa, i programmatori hanno escogitato molti modi interessanti per lavorare con i numeri binari. Ad esempio, Java ha operatori logici che operano sui bit della rappresentazione binaria di un numero: &(AND), | (OR), ~(NOT o complemento) e ^(XOR - or esclusivo).
a & b
&(AND).
Questo operatore è molto simile all'operatore logico &(AND), solo che è denotato da una singola e commerciale, non due:
Ed è applicato a singoli bit. Ciascun operando viene trattato come un array di bit e il ibit esimo del risultato viene calcolato utilizzando il ibit esimo di ciascuno dei due operandi.
Il primo bit del risultato verrà calcolato in base al primo bit del numero a e al primo bit del numero b, il secondo bit — in base al secondo bit del numero a e al secondo bit del numero b, ecc.
L' &operatore (AND) significa "il bit risultante è uguale a uno solo se il bit corrispondente del numero aè uguale a uno ANDil bit corrispondente del numero bè uguale a uno":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Esempi:
| Esempio | Risultato |
|---|---|
|
|
|
|
|
|
|
|
2. |Operatore bit a bit
Questo operatore è molto simile all'operatore logico |(OR), solo che è indicato da una singola linea verticale, non due:
a | b
Ed è applicato a singoli bit. Ogni operando viene trattato come un array di bit e l'i-esimo bit del risultato viene calcolato utilizzando l'i-esimo bit di ciascuno dei due operandi.
L' |operatore bit per bit (OR) significa "il bit risultante è uguale a uno se il bit corrispondente del numero aè uguale a uno ORil bit corrispondente del numero bè uguale a uno":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Esempi:
| Esempio | Risultato |
|---|---|
|
|
|
|
|
|
|
|
Solo quando i bit corrispondenti (i bit nella stessa posizione) di entrambi i numeri sono zero, il bit corrispondente del risultato è uguale a zero.
3. Operatore bitwise ^(XOR o "esclusivo o").
L' XORoperatore, pronunciato anche esclusivo o , è denotato dal ^simbolo. Per inserirlo sulla tastiera, premi Maiusc + 6 (su un layout di tastiera inglese).
a ^ b
Questo operatore è in qualche modo simile all'operatore OR, anche in quanto ha un nome simile:XOR
L' ^operatore bit per bit (XOR) significa "il bit risultante è uguale a uno se il bit corrispondente del numero aè uguale a uno ORil bit corrispondente del numero bè uguale a uno ma non entrambi contemporaneamente":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Esempi:
| Esempio | Risultato |
|---|---|
|
|
|
|
|
|
|
|
Solo quando i bit corrispondenti (i bit nella stessa posizione) di entrambi i numeri sono diversi , il bit corrispondente del risultato è uguale a uno . Se i bit sono uguali , il bit risultante è uguale a zero .
4. ~Operatore bit per bit (NOT, COMPLEMENT).
Penso che tu possa già indovinare cosa fa. Questo operatore è molto simile all'operatore logico !(NOT), ma è indicato da una tilde , non da un punto esclamativo:
~a
Questo è un operatore unario , il che significa che si applica a un singolo numero, non a due. Appare prima di questo singolo operando.
L' ~operatore bit per bit significa "il bit risultante è uno se il bit corrispondente del numero aè zero, ed è zero se il bit corrispondente del numero aè uno":
~1 = 0
~0 = 1
Esempi:
| Esempio | Risultato |
|---|---|
|
|
|
|
|
|
|
|
Questo operatore cambia semplicemente il bit che è 1to 0e il bit che è 0to 1.
GO TO FULL VERSION