Operazioni sui bit
Tutti i numeri nella memoria del computer sono memorizzati in forma binaria, ad es. come una sequenza di 0 e 1. Per memorizzare i numeri nella memoria del computer, viene utilizzato un numero finito di bit. A causa di questo numero, il computer dispone di un intervallo limitato e i risultati del calcolo potrebbero essere imprecisi. Un numero intero può essere memorizzato in 8, 16, 32 o 64 bit di memoria. Ogni bit aggiuntivo espande l'intervallo di valori possibili di 2.
Le operazioni con numeri positivi e negativi vengono eseguite nel processore utilizzando gli stessi algoritmi.
Con l'aiuto di operazioni logiche bit a bit, puoi controllare i singoli bit dei registri del processore e dei dispositivi esterni.
Operazione C++ |
Destinazione |
a & b |
Bitwise And per a e b |
a | b |
OR bit a bit per a e b |
a ^ b |
X OR per a e b |
~a |
Inversione di bit per a |
a << b |
Sposta bit a sinistra da a a b |
a >> b |
Spostamento bit a destra di a in b |
Operazione AND
Utilizzando l'
operazione "AND
" puoi azzerare (impostare a zero) i bit per i quali la maschera è 0!
Maschera – una costante che definisce l'ambito dell'operazione logica sui bit di un numero a più bit.
D
- dati,
M
- maschera
Operazione OR
L'
operazione "OR
" può essere utilizzata per scrivere un 1 nei bit per i quali la maschera è 1!
Operazione OR esclusivo
Usando l'
operazione "XOR
" puoi invertire i bit per i quali la maschera è 1!
Sposta a sinistra
Uno spostamento logico (bit per bit)
a sinistra di 1
bit raddoppia un numero intero positivo.
Sposta a destra
Booleano (bit per bit) .
sposta a destra di 1
divide un numero intero positivo per 2.
Poiché uno spostamento a destra imposta il bit di segno sulle posizioni vacanti, il segno di
x
può essere determinato spostando a destra l'intera lunghezza della variabile.