Vad är en aritmetisk förskjutning?

En aritmetisk förskjutning är ett sätt att multiplicera eller dela siffror. Aritmetiska förändringar utförs vanligtvis på binära nummer. Konceptet är dock tillämpligt på alla numreringsscheman.

Följande är ett exempel med decimaltal som har tio som bas. När 250 aritmetiskt flyttas till vänster är det resulterande antalet 2500, vilket är 250 multiplicerat med tio. När 250 representerade med 4 siffror som 0250, är ​​aritmetiskt förskjutet till höger är det resulterande numret 0025, vilket är 250 dividerat med tio. Så det är mer korrekt att säga att en aritmetisk förskjutning är ett sätt att multiplicera eller dela siffror med basen för nummerschemat.

Binära siffror har 2 som bas; de representeras med 0s och 1s och kan vara signerade eller osignerade. I en aritmetisk vänsterförskjutning förskjuts siffrorna med ett mellanrum till vänster med noll placerad till höger. I en aritmetisk högerväxling förskjuts siffrorna med ett rymd till höger med det vänstra numret kvar till vänster. I allmänhet kan en förskjutning vara för "n" -utrymmen.

I osignerade binära siffror är varje position en effekt på 2, så binär 1 är decimal 1, binär 10 är decimal 2, binär 100 är decimal 4, och så vidare. Så 0110 är decimal 6. När ett aritmetiskt vänsterskifte utförs är det resulterande numret 1100 vilket är decimal 12. När ett aritmetiskt högerskifte utförs är det resulterande numret 0011 vilket är decimal 3.

Eftersom siffror kan vara både positiva och negativa, används signerade binära nummer där den vänstra biten är 0 för ett positivt tal eller noll, och 1 för ett negativt tal. För 4-bitarsnummer är således 0111, som är decimal 7, det största positiva antalet. Det schema som oftast används för negativa siffror har 1111 som decimal -1 och detta går hela vägen ner till 1000, vilket är decimal -8.

Ett aritmetiskt vänsterskifte på 1101, till exempel, som är decimal -3, resulterar i 1010, vilket är decimal -6. Ett aritmetiskt högerskifte på 1010, som är decimal -6, resulterar i 1101, vilket är decimal -3. Lägg märke till att den vänstra biten bibehålls.

En aritmetisk förskjutning motsvarar inte alltid multiplikation och uppdelning för varje nummer i nummerskemat. Det finns begränsningar i vardera änden av nummersystemet. Till exempel ger vänsterskiftet 0111, decimal 7, decimal -2, och, högerskift 1111, decimal -1, ger decimal -1.

En aritmetisk förskjutning har en inneboende enkelhet och en förskjutning är mycket snabbare att utföra än normal multiplikation och uppdelning. Därför stöder datorer denna operation med en relativt enkel mekanism som kallas en skiftenhet eller ett skiftregister. Kyndiga programmerare använder denna operation så länge de ovan nämnda begränsningarna antingen undviks eller tas om hand.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?