[go: nahoru, domu]

Przejdź do zawartości

Przesunięcie bitowe: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
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>10011100_2 \rightarrow 11001110_2</math> (<math>-100_{U2} \rightarrow -50_{U2}</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_{U2}</math>.
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 .

Zobacz też