Bitsko pomeranje u levo i bitsko pomeranje u desno

Ovi operatori rade tako što pomeraju bitove za određeni broj mesta.


Bitsko pomeranje u levo:

  
#1<<2 = 4
#5<<3 = 40

0b000001<<2 = 0b000100
0b000101<<3 = 0b101000 
            


U prvom slučaju, pomerimo 1 za dva mesta u levo, i tada on dođe na mesto gde mu je vrednost 4.
U drugom slučaju, 101 pomerimo za 3 mesta u levo, pa prva jedinica dođe na mesto 32, a druga na mesto 8, pa je 32+8 = 40.

Bitsko pomeranje u desno:

  
#20>>3 = 2
#2>>2 = 0 

0b0010100>>3 = 0b000010 
0b0000010>>2 = 0b000000
            


Isti princip.
Kako se to radi u kodu?
Primer: treba nam broj koji se nalazi u varijabli „shift_right“ da pomerimo za 2 mesta:

  
shift_right = 0b1100
shift_right = shift_right >> 2
print(bin(shift_right))

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  0b11

  
shift_left = 0b1
shift_left = shift_left<< 2
print(bin(shift_left))
            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:


>>  0b100


Ove operacije su moguće samo za int (integer tj. celobrojne vrednosti).