Operatori di shift a destra e a sinistra
Lezione 7 di 17 del corso Manipolazione dei bit di Coddy.
Gli operatori di shift vengono usati per spostare i bit verso sinistra o verso destra.
Operatore di shift a destra ( >> )
Prende due operandi. Il primo valore è il numero i cui bit vogliamo spostare verso destra e il secondo operando indica di quante posizioni vogliamo spostarli. In pratica inseriamo degli zeri dal lato MSB del numero nel numero binario.
Lo shift a destra è indicato con '>>' .
Lo shift a destra equivale a dividere il numero per una potenza di due. Vediamolo con un esempio.

Abbiamo preso (11)10 e lo abbiamo spostato verso destra di 3 posizioni, ottenendo (1)10 come output. Possiamo calcolarlo anche prendendo la parte intera di (11 / 23), che non è altro che (1)10.
Utilizzo:
int a = 11;
a>>3;
OUTPUT: 1Qui a è il numero i cui bit devono essere spostati e 3 è il numero di posizioni verso destra di cui spostare il numero dato.
Operatore di shift a sinistra ( << )
Prende anch'esso due operandi. Il primo operando è il numero i cui bit vogliamo spostare verso sinistra e il secondo operando indica di quante posizioni vogliamo spostarli. In pratica inseriamo degli zeri dal lato LSB del numero. Lo shift a sinistra è indicato con '<<' . Lo shift a sinistra equivale a moltiplicare il numero per una potenza di due. Vediamolo con lo stesso esempio.

Abbiamo preso (11)10 e lo abbiamo spostato verso destra di 3 posizioni, ottenendo (88)10 come output. Possiamo calcolarlo anche moltiplicando (11)10 per 23, ottenendo (88)10. Nota che in questo caso non possiamo rimuovere l'MSB: lo shift a sinistra aumenta il numero di bit e inserisce zeri dal lato LSB, ma non rimuove i bit MSB. Nel caso dello shift a destra, invece, inseriamo zeri dal lato MSB e i bit a sinistra vengono semplicemente omessi.
Utilizzo:
int a = 11;
a<<3;
OUTPUT: 88Sfida
FacileRaddoppia il numero dato (l'input) usando gli operatori di shift.
Provalo tu
#include <iostream>
#include <vector>
using namespace std;
int Double(int num) {
// Scrivi il codice qui
}Tutte le lezioni di Manipolazione dei bit
1Introduzione e basi
Cos’è la manipolazione dei bit?Perché serve la manipolazione dei bit?Numeri binari e decimaliOperatori NOT e OROperatore ANDOperatore XOROperatori di shift a destra e a sinistraRiepilogo degli operatori bitwiseEsercitati da solo: Compilatore C++ online