Bitskifting

I datamaskiner er bitskifting en operasjon som kan utføres på et ord. Den flytter alle bitverdiene én eller flere plasser til høyre eller venstre. Man skiller mellom flere forskjellige typer bitskifting ut fra hvordan man fyller på nye bitverdier en den enden man skifter fra og til en hvis grad hvor det blir av bitverdiene som forsvinner utenfor enden man skifter mot.

Logisk skifting

Ved logisk skifting fyller man på med 0 i den enden man skifter fra. Bitverdien som forsvinner ut i enden blir enten forkastet eller lagret i et statusregister. For tall som kun er positive vil skifting mot venstre eller høyre med n plasser tilsvare henholdsvis multiplikasjon og divisjon med 2n.

Aritmetisk skifting

Ved aritmetisk skifting fyller man på med 0 i høyre ende dersom man skifter mot venstre. Hvis man derimot skifter mot høyre fyller man på med fortegnsbiten til venstre. På den måten bevarer man fortegnet til den verdien man utfører operasjonen på. Dersom negative tall representeres med toerkomplement, vil skifting mot venstre eller høyre med n plasser tilsvare henholdsvis multiplikasjon og divisjon med 2n (hvor resultatet rundes av mot −∞).

Sirkulær skifting

Ved sirkulær skifting lar man bitverdien som blir skjøvet utfor den ene enden komme tilbake igjen på den andre siden. I en variant av sirkulær skifting introduserer man enda en bitpositsjon, typisk menteregisteret. Bitverdien som blir skiftet ut av ordet havner i menteregisteret, men den forrige verdien av menteregisteret skiftes inn i den andre enden.

Kategori:Programmeringselementer
Kategori:Matematisk logikk
Kategori:Datastrukturer