Wat is een rekenkundige verschuiving?
Een rekenkundige verschuiving is een manier om getallen te vermenigvuldigen of te verdelen. Rekenkundige verschuivingen worden meestal uitgevoerd op binaire getallen. Het concept is echter van toepassing op elk nummeringschema.
Het volgende is een voorbeeld met decimale getallen die tien als basis hebben. Wanneer 250 rekenkundig naar links wordt verschoven, is het resulterende nummer 2500, wat 250 is vermenigvuldigd met tien. Wanneer 250 worden weergegeven met behulp van 4 cijfers als 0250, wordt rekenkundig verschoven naar rechts, is het resulterende nummer 0025, dat 250 wordt gedeeld door tien. Het is dus correct om te zeggen dat een rekenkundige verschuiving een manier is om getallen te vermenigvuldigen of te verdelen met de basis van het nummerschema.
binaire getallen hebben 2 als basis; Ze worden weergegeven met behulp van 0s en 1s en kunnen worden ondertekend of niet ondertekend. In een rekenkundige linkse verschuiving worden de cijfers verschoven door één ruimte links met nul rechts geplaatst. In een rekenkundige rechterverschuiving worden de cijfers door één ruimte naar rechts verschoven, waarbij het meest linkse nummer wordt vastgehoudenED aan de linkerkant. Over het algemeen kan een verschuiving zijn voor "N" -ruimtes.
In niet -ondertekende binaire getallen is elke positie een kracht van 2, dus binair 1 is decimaal 1, binaire 10 is decimaal 2, binaire 100 is decimaal 4, en zo verder. Dus 0110 is decimaal 6. Wanneer een rekenkundige linkse verschuiving wordt uitgevoerd, is het resulterende aantal 1100 dat decimaal 12 is. Wanneer een rekenkundige rechterverschuiving wordt uitgevoerd, is het resulterende aantal 0011 dat decimaal is 3.
Omdat getallen zowel positief als negatief kunnen zijn, worden ondertekende binaire getallen gebruikt waarbij de meest linkse bit 0 is voor een positief getal of nul en 1 voor een negatief getal. Dus voor 4-bits nummers is 0111, die decimaal 7 is, het grootste positieve nummer. Het schema dat het meest wordt gebruikt voor negatieve getallen heeft 1111 als decimaal -1 en dit gaat helemaal naar 1000, wat decimaal is -8.
Een rekenkundige linkse verschuiving op 1101 bijvoorbeeld, die decimaal -3 is, resulteert in 1010, watis decimaal -6. Een rekenkundige rechtse verschuiving op 1010, die decimaal -6 is, resulteert in 1101, wat decimaal -3 is. Merk op dat het meest linkse bit wordt behouden.
Een rekenkundige verschuiving komt niet altijd overeen met vermenigvuldiging en verdeling voor elk nummer in het nummerschema. Er zijn beperkingen aan beide uiteinden van het nummerschema. De linkse verschuiving van 0111, decimaal 7, geeft bijvoorbeeld decimaal -2 en, de juiste verschuiving van 1111, decimaal -1, geeft decimaal -1.
Een rekenkundige verschuiving heeft een inherente eenvoud en een verschuiving is veel sneller om uit te voeren dan normale vermenigvuldiging en verdeling. Computers ondersteunen deze bewerking dus met behulp van een relatief eenvoudig mechanisme dat een schuifeenheid of schuifregister wordt genoemd. Savvy -programmeurs gebruiken deze bewerking zolang de hierboven genoemde beperkingen worden vermeden of verzorgd.