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
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 i
bit esimo del risultato viene calcolato utilizzando il i
bit 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 AND
il 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 OR
il 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' XOR
operatore, 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 OR
il 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 è 1
to 0
e il bit che è 0
to 1
.
GO TO FULL VERSION