Menu
Coddy logo textTech

Operatory przesunięcia w prawo i w lewo

Lekcja 7 z 17 w kursie Operacje bitowe w Coddy.

Operatory przesunięcia służą do przesuwania bitów w lewo lub w prawo. 

Operator przesunięcia w prawo ( >> )

Przyjmuje dwa operandy. Pierwsza wartość to liczba, której bity chcemy przesunąć w prawo, a drugi operand określa, o ile pozycji chcemy je przesunąć. Zasadniczo wstawiamy zera od strony MSB liczby do liczby binarnej.

Przesunięcie w prawo oznacza się jako '>>' . 

Przesunięcie w prawo jest równoważne podzieleniu liczby przez potęgę dwójki. Wyjaśnijmy to na przykładzie.

Wzięliśmy (11)10 i przesunęliśmy ją w prawo 3 razy, co dało nam (1)10 jako wynik. Możemy też obliczyć to, biorąc część całkowitą z (11 / 23), co daje właśnie (1)10.  

Zastosowanie:

int a = 11;
a>>3;
OUTPUT: 1

Tutaj a to liczba, której bity należy przesunąć, a 3 to liczba pozycji, o które należy przesunąć ją w prawo.

Operator przesunięcia w lewo ( << )

Również przyjmuje dwa operandy. Pierwszy operand to liczba, której bity chcemy przesunąć w lewo, a drugi operand określa, o ile pozycji chcemy je przesunąć. Zasadniczo wstawiamy zera od strony LSB liczby. Przesunięcie w lewo oznacza się jako '<<' . Przesunięcie w lewo jest równoważne pomnożeniu liczby przez potęgę dwójki. Wyjaśnijmy to na tym samym przykładzie.

Wzięliśmy (11)10 i przesunęliśmy ją w prawo 3 razy, co daje nam (88)10 jako wynik. Możemy też obliczyć to, mnożąc (11)10 przez 23, co daje (88)10. Zwróć uwagę, że w tym przypadku nie możemy usunąć bitu MSB: przesunięcie w lewo zwiększa liczbę bitów i wstawia zera od strony LSB, ale nie usuwa bitów MSB. Natomiast przy przesunięciu w prawo wstawiamy zera od strony MSB, a bity po lewej stronie są po prostu pomijane.

Zastosowanie:

int a = 11;
a<<3;
OUTPUT: 88
challenge icon

Wyzwanie

Łatwy

Podwój podaną liczbę (dane wejściowe) za pomocą operatorów przesunięcia bitowego.

Spróbuj swoich sił

#include <iostream>
#include <vector>
using namespace std;

int Double(int num) {
    // Napisz kod tutaj
}

Wszystkie lekcje w sekcji Operacje bitowe

Poćwicz samodzielnie: Kompilator C++ online