Skip to content
EntityQ3042450· pop 13· linked from 56 articles

Obrót bitowy

Sign in to save

Also known as rotate

shift whose last entry moved to first place (or vice versa)

Wikidata facts

Sources (1)

via Wikidata · CC0

Article · Polski

Obrót bitowy lub przesunięcie cykliczne – działanie na słowach bitowych polegająca na zmianie pozycji wszystkich bitów, w taki sposób, że bit o indeksie po wykonaniu obrotu o miejsc znajduje się na pozycji gdzie to liczba bitów w danym słowie. Ze względu na znak rozróżnia się obroty w lewo i w prawo Przykład obrotu dla słowa 8-bitowego o 3 miejsca w lewo: 7 6 5 4 3 2 1 0 ← indeksy+---+---+---+---+---+---+---+---+| a | b | c | d | e | f | g | h | przed obrotem+---+---+---+---+---+---+---+---++---+---+---+---+---+---+---+---+| d | e | f | g | h | a | b | c | po obrocie+---+---+---+---+---+---+---+---+ 4 3 2 1 0 7 6 5 ← indeksy przed obrotem Obroty bitowe są implementowane w wielu procesorach; niektóre pozwalają także na wykonywanie obrotów przez znacznik przeniesienia (jedną z flag ALU), tj. rozszerzenie słowa o ten bit i dopiero wówczas wykonywany jest obrót bitowy: CF 7 6 5 4 3 2 1 0 ← indeksy+---+ +---+---+---+---+---+---+---+---+| X | | a | b | c | d | e | f | g | h | przed obrotem+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+| c | | d | e | f | g | h | X | a | b | po obrocie+---+ +---+---+---+---+---+---+---+---+ 5 4 3 2 1 0 CF 7 6 ← indeksy przed obrotem Np. w mikroprocesorach serii x86 istnieją instrukcje ROL oraz ROR wykonujące – odpowiednio – obrót w lewo i prawo, natomiast RCL/RCR wykonują obrót w lewo/prawo przez znacznik przeniesienia. W popularnych językach programowania nie istnieją operatory, które wprost umożliwiałyby takie działanie. Mogą być jednak łatwo zrealizowane za pomocą dwóch przesunięć bitowych i jednej operacji sumy bitowej. Np. w języku C obrót w lewo 8-bitowego słowa można wykonać następująco: y = (x << n) | (x >> (8-n));

Abstract from DBpedia / Wikipedia · CC BY-SA