Przesunięcie bitowe - operacja na liczbach dwójkowych polegająca na przesunięciu wszystkich cyfr binarnych o n pozycji w lewo lub prawo. Jest to działanie powszechnie stosowane w elektronice i informatyce. Najczęściej przesunięcie wykorzystuje się do szybkiego mnożenia/dzielenia przez liczbę 2 i jej potęgi oraz do sekwencyjnego testowania wartości poszczególnych bitów.

W cyfrowych układach elektronicznych przesunięcie bitowe realizowane jest przez rejestry przesuwające.

W różnych językach programowania istnieją funkcje bądź operatory, realizujące przesunięcie:

  • w C/C++, Javie, Pythonie - >> (przesuniÄ™cie w prawo), << (przesuniÄ™cie w lewo);
  • w Pascalu - shr (przesuniÄ™cie w prawo), shl (przesuniÄ™cie w lewo).

Spis treści

[edytuj] Przesunięcia o jedną pozycję

[edytuj] W lewo

Na najmłodszą pozycję dopisywany jest bit o wartości zero, natomiast najstarszy bit jest tracony, np.:

01101000_2 \rightarrow 11010000_2 (104_{10} \rightarrow 208_{10})

Wartość liczby w naturalnym kodzie binarnym jest 2 razy większa. Większe przesunięcia są równoważne przemnożeniu przez potęgę dwójki.

[edytuj] W prawo

Na najstarszą pozycję dopisywany jest bit o wartości zero, natomiast najmłodszy bit jest tracony, np.:

10011101_2 \rightarrow 01001110_2 (157_{10} \rightarrow 78_{10})

Wartość liczby w naturalnym kodzie binarnym jest 2 razy mniejsza (dzielenie całkowitoliczbowe).

[edytuj] Przesunięcie arytmetyczne w prawo

Używane dla liczb zapisanych w powszechnie stosowanym kodzie uzupełnień do dwóch (U2). Bit z najstarszej pozycji jest powielany, natomiast najmłodszy bit jest tracony, np.:

10011100_{U2} \rightarrow 11001110_{U2} (-100_{10} \rightarrow -50_{10})

Gdyby zastosować zwykłe przesunięcie bitowe wynikiem byłoby 7810.

[edytuj] Zobacz też