przesunięcie bitowe w prawo z wypełnieniem zerami ??

0

Mam pytanie, czy mógłby ktoś (najlepiej na przykładzie) wyjaśnić różnicę między przesunięciem bitowym w prawo, a przesunięciem bitowym w prawo z wypełnieniem zerami? Ciężko mi to uchwycić na przykładach w programie bo zawsze wychodzi mi ten sam wynik w przypadku obu. Byłabym bardzo wdzięczna za pomoc;)

0

to zależy czy liczba jest ujemna czy dodatnia.

0

Chcę to zrozumieć jak najlepiej, także dobrze gdyby ktoś wyjaśnił oba przypadki. Przesunięcie bitowe w prawo łatwo znaleźć wyjaśnienia w internecie niestety z wypełnieniem zerami już gorzej...

1

Jak masz liczbe ujemna, to bit najbardziej na lewo jest ustawiony na 1, np -1 to 1000...000 (31 zer dla inta) - poczytaj o 'two's complement'.
Przy przesuwaniu w prawo o jedna pozycje, z lewej sa 'dodawane' 1 lub zera w zelaznosci od tego co jest tam w oryginalnej liczbie. Np. dla -1 na lewo jest 1, a wiec przesuwanie w pracy o 1 miejse da 110000....000 (30 zer).
Przesuwanie w prawo z wypelnianiem zerami, jak sama nazwa wskazuje, wypelni zerami miejsca powstale po przesunieciu. Dla -1 bedzie to 010000...000 (30 zer).

1 użytkowników online, w tym zalogowanych: 0, gości: 1