Przesunięcie bitowe: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja nieprzejrzana] |
m dr. |
Zmiana oznaczeń kodów - były błędne |
||
Linia 28: | Linia 28: | ||
Używane dla liczb zapisanych w powszechnie stosowanym [[Kod uzupełnień do dwóch|kodzie uzupełnień do dwóch]] (U2). Bit z najstarszej pozycji jest '''powielany''', natomiast najmłodszy bit '''jest tracony''', np.: |
Używane dla liczb zapisanych w powszechnie stosowanym [[Kod uzupełnień do dwóch|kodzie uzupełnień do dwóch]] (U2). Bit z najstarszej pozycji jest '''powielany''', natomiast najmłodszy bit '''jest tracony''', np.: |
||
:<math> |
:<math>10011100_U2 \rightarrow 11001110_U2</math> (<math>-100_{10} \rightarrow -50_{10}</math>) |
||
Gdyby zastosować zwykłe przesunięcie bitowe wynikiem byłoby <math>78_{ |
Gdyby zastosować zwykłe przesunięcie bitowe wynikiem byłoby <math>78_{10}</math>. |
||
==Zobacz też== |
==Zobacz też== |
Wersja z 11:47, 9 cze 2008
Przesunięcie bitowe - operacja na liczbach dwójkowych polegająca na przesunięciu wszystkich cyfr binarnych o 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).
Przesunięcia o jedną pozycję
W lewo
Na najmłodszą pozycję dopisywany jest bit o wartości zero, natomiast najstarszy bit jest tracony, np.:
- ()
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.
W prawo
Na najstarszą pozycję dopisywany jest bit o wartości zero, natomiast najmłodszy bit jest tracony, np.:
- ()
Wartość liczby w naturalnym kodzie binarnym jest 2 razy mniejsza (dzielenie całkowitoliczbowe).
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.:
- ()
Gdyby zastosować zwykłe przesunięcie bitowe wynikiem byłoby .