//PRIORYTET OPERATORA // << >> // OR AND // = // a >> b - przesunięcie bitowe liczby a o b bitów w prawo. Dla przykładu 160 (10100000) >> 4 = 10 (1010). Przesunięcie nie "zapętla" liczby. Bity najbardziej po prawej, zastąpione są zerami po lewej. // a << b - przesunięcie bitowe liczby a o b bitów w lewo. Dla przykładu 10 (1010) << 4 = 160 (10100000). Przesunięcie nie "zapętla" liczby. Bity najbardziej po lewej, zastąpione są zerami po prawej. // OR (|) - operator alternatywy bitowej. 0|0=0, 0|1=1, 1|0=1, 1|1=1. Dla przykładu: 4(100)|2(010)=6(110) // AND(&) - operator koniunkcji bitowej. 0|0=0, 0|1=0, 1|0=0, 1|1=1. 6(110)|5(101)=4(100) //PSEUDOKOD a = a << [ilość bitów konieczna do zapisania liczby b] | b //3 operacje b = a >> [ilość bitów konieczna do zapisania liczby b] //2 operacje a = a & 00..0011..11 //2 operacje (ciąg jedynek, poprzedzony ciągiem zer, gdzie ilość 0 = ilość bitów konieczna do zapisania liczby a, ilość 1 = ilość bitów konieczna do zapisania liczby b) //razem 7 operacji //PRZYKŁAD //a = 10 (1010), b=15(1111) //a = a << 4 | b = 10100000 | b = 10101111 //b = a >> 4 = 1010 //a = a & 00001111 = 10101111 & 00001111 = 00001111 = 1111