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: 1Tutaj 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: 88Wyzwanie
ŁatwyPodwó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
1Wprowadzenie i podstawy
Czym jest manipulacja bitami?Dlaczego potrzebujemy manipulacji bitami?Liczby binarne i dziesiętneOperatory NOT i OROperator ANDOperator XOROperatory przesunięcia w prawo i w lewoPodsumowanie operatorów bitowychPoćwicz samodzielnie: Kompilator C++ online