# Arithmetic Shifts

## Understanding Arithmetic Shifts

**Arithmetic Shifts**are operations used to manipulate binary numbers by shifting their bits either to the**right**or the**left**.- These types of shifts fill the space vacated depending on the type of shift and considering the sign bit as well.

## Arithmetic Right Shifts

- An arithmetic right shift
**pulls all bits one place to the right**. - The leftmost bit (most significant bit) retains its previous value. This bit is often known as the
**sign bit**, because it’s used to represent whether a number is positive or negative in signed number representations. - The rightmost bit is discarded.
- For example, if we arithmetically right-shift the binary number 1101 (which is 13 in decimal or -3 in two’s complement form), we get 1110 (which is -2 in two’s complement form).

## Arithmetic Left Shifts

- An arithmetic left shift effectively
**multiplies the binary number by 2**, shifting all bits in the binary number one place to the left. - The rightmost bit will become 0, and the original leftmost bit is discarded.
- For instance, if we arithmetically left-shift the binary number 1011 (which is 11 in decimal or -5 in two’s complement form), we would get 0110 (which is 6 in decimal).

## Practical Use of Arithmetic Shifts

- Similar to logical shifts, arithmetic shifts are useful for
**multiplication**or**division**by two. An arithmetic shift left doubles the original number, while an arithmetic shift right halves it. - Unlike logical shifts, arithmetic shifts consider the
**sign of the number**. This makes them especially useful in multiplication and division operations for**signed binary numbers**.

## Important Considerations for Arithmetic Shifts

- The crucial difference to remember when comparing arithmetic and logical shifts is that arithmetic shifts take into account the
**sign**of a number. - As they keep track of whether a number is negative or positive, they are the better choice when dealing with signed binary numbers.
- However, wrongly using these operation while ignoring the sign bit condition can lead to inaccurate results. It’s therefore vitally important to understand their function and proper use.