Che cos’è uno spostamento aritmetico?

Uno spostamento aritmetico è un modo per moltiplicare o dividere i numeri. Gli spostamenti aritmetici vengono in genere eseguiti su numeri binari. Il concetto, tuttavia, è applicabile a qualsiasi schema di numerazione.

Quello che segue è un esempio che utilizza numeri decimali che hanno dieci come base. Quando 250 viene spostato aritmeticamente a sinistra, il numero risultante è 2500, che è 250 moltiplicato per dieci. Quando 250 rappresentato utilizzando 4 cifre come 0250, viene spostato aritmeticamente a destra, il numero risultante è 0025, che è 250 diviso per dieci. Quindi è più corretto dire che uno spostamento aritmetico è un modo per moltiplicare o dividere i numeri per la base dello schema numerico.

I numeri binari hanno 2 come base; sono rappresentati usando 0 e 1 e possono essere firmati o non firmati. In uno spostamento aritmetico a sinistra, i numeri vengono spostati di uno spazio a sinistra e lo zero viene posizionato a destra. In uno spostamento a destra aritmetico, i numeri vengono spostati di uno spazio a destra mantenendo il numero più a sinistra a sinistra. In generale, uno spostamento può essere per “n” spazi.

Nei numeri binari senza segno, ogni posizione è una potenza di 2, quindi il binario 1 è il decimale 1, il binario 10 è il decimale 2, il binario 100 è il decimale 4 e così via. Quindi 0110 è decimale 6. Quando viene eseguito uno spostamento aritmetico a sinistra, il numero risultante è 1100 che è il decimale 12. Quando viene eseguito uno spostamento aritmetico a destra il numero risultante è 0011 che è il decimale 3.

Poiché i numeri possono essere sia positivi che negativi, vengono utilizzati numeri binari con segno in cui il bit più a sinistra è 0 per un numero positivo o zero e 1 per un numero negativo. Pertanto, per i numeri a 4 bit, 0111, che è il decimale 7, è il numero positivo più grande. Lo schema più spesso utilizzato per i numeri negativi ha 1111 come decimale -1 e questo scende fino a 1000, che è decimale -8.

Uno spostamento aritmetico a sinistra su 1101, ad esempio, che è decimale -3, restituisce 1010, che è decimale -6. Uno spostamento a destra aritmetico su 1010, che è decimale -6, risulta in 1101, che è decimale -3. Notare che viene mantenuto il bit più a sinistra.
Uno spostamento aritmetico non corrisponde sempre alla moltiplicazione e alla divisione per ogni numero nello schema numerico. Ci sono limitazioni ad entrambe le estremità dello schema numerico. Ad esempio, lo spostamento a sinistra di 0111, decimale 7, dà decimale -2 e lo spostamento a destra di 1111, decimale -1, dà decimale -1.
Uno spostamento aritmetico ha una semplicità intrinseca e uno spostamento è molto più veloce da eseguire rispetto alla normale moltiplicazione e divisione. Quindi i computer supportano questa operazione utilizzando un meccanismo relativamente semplice chiamato unità di spostamento o registro a scorrimento. I programmatori esperti utilizzano questa operazione purché le limitazioni sopra menzionate siano evitate o curate.