We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Hardware

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What is an Arithmetic Shift?

By Archana Khambekar
Updated: May 16, 2024
Views: 18,580
Share

An arithmetic shift is a way of multiplying or dividing numbers. Arithmetic shifts are typically executed on binary numbers. The concept, however, is applicable to any numbering scheme.

The following is an example using decimal numbers which have ten as the base. When 250 is arithmetically shifted to the left, the resulting number is 2500, which is 250 multiplied by ten. When 250 represented using 4 digits as 0250, is arithmetically shifted to the right the resulting number is 0025, which is 250 divided by ten. So it is more correct to say that an arithmetic shift is a way of multiplying or dividing numbers by the base of the number scheme.

Binary numbers have 2 as the base; they are represented using 0s and 1s, and can be signed or unsigned. In an arithmetic left shift, the numbers are shifted by one space to the left with zero being placed at the right. In an arithmetic right shift, the numbers are shifted by one space to the right with the leftmost number being retained to the left. In general, a shift can be for "n" spaces.

In unsigned binary numbers, each position is a power of 2, so binary 1 is decimal 1, binary 10 is decimal 2, binary 100 is decimal 4, and, so on. So 0110 is decimal 6. When an arithmetic left shift is carried out, the resulting number is 1100 which is decimal 12. When an arithmetic right shift is carried out the resulting number is 0011 which is decimal 3.

As numbers can be both positive and negative, signed binary numbers are used wherein the leftmost bit is 0 for a positive number or zero, and 1 for a negative number. Thus for 4-bit numbers, 0111, which is decimal 7, is the largest positive number. The scheme most often used for negative numbers has 1111 as decimal -1 and this goes all the way down to 1000, which is decimal -8.

An arithmetic left shift on 1101, for example, which is decimal -3, results in 1010, which is decimal -6. An arithmetic right shift on 1010, which is decimal -6, results in 1101, which is decimal -3. Notice that the leftmost bit is retained.

An arithmetic shift does not always correspond to multiplication and division for each and every number in the number scheme. There are limitations at either end of the number scheme. For example, the left shift of 0111, decimal 7, gives decimal -2, and, the right shift of 1111, decimal -1, gives decimal -1.

An arithmetic shift has an inherent simplicity and a shift is much faster to carry out than normal multiplication and division. So computers support this operation using a relatively simple mechanism called a shift unit or shift register. Savvy programmers utilize this operation as long as the limitations mentioned above are either avoided or taken care of.

Share
EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
By anon335499 — On May 21, 2013

main()

{

int a=4,b=2;

a=b<>2;

printf("%d", a);

}

Please explain this program.

Share
https://www.easytechjunkie.com/what-is-an-arithmetic-shift.htm
Copy this link
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.