Maskiranje pomaže u operacijama sa bitovima. „Maska“ se koristi da bismo uključili određeni bit ili ga isključili ili samo da bismo prikupili informacije o nekom broju. Na primer, ako želimo da saznamo da li je treći bit broja „a“ sa desna uključen, to bismo najlakše postigli sa & operatorom sa maskom. Primer:
#Označimo masku i dodelimo varijabli “zeljeni_broj” a = 0b110 mask = 0b100 zeljeni_broj = a & mask print zeljeni_broj
Nakon pokretanja programa kao rezultat dobićemo:
>> 4
Korišćenje & operatora sa maskom 0b100, će isključiti sve bitove broja „a“ OSIM trećeg sa desna (tu gde je 1). Ako je rezultujući broj veći od nule, „bit“ je uključen. Ako nije veči od nule, „bit“ je isključen.
Korišćenje maske za uključivanje bitova: Masku možemo da koristimo da uključimo bit uz pomoć „|” operatora. Primer:
#želimo da uključimo prvi bit,imamo broj “a” pa definišemo masku a = 0b110 mask = 0b1 zeljeni_broj = a | mask print zeljeni_broj
Nakon pokretanja programa kao rezultat dobićemo:
>> 7
Objašnjenje: pošto operator OR proverava da li je uključen ili jedan ili drugi, kod prvog broja uključen je prvi, a kod drugog su uključeni drugi i treći, rezultat je da su uključeni i prvi i drugi i treći što je „0b111“, a to je: 1+2+4 = 7.
Koriščenjem XOR operatora možemo lako obrnuti bitove. Recimo da želimo da obrnemo sve bitove u broju „a“:
a = 0b110 mask = 0b111 željeni_broj = a ^ mask print zeljeni_broj
Nakon pokretanja programa kao rezultat dobićemo:
>> 1
Objašnjenje: XOR rezultuje jedinicom ako bilo koji od brojeva na tom bitnom mestu ima 1, osim ako ga imaju oba, kada će rezultat biti 0. Broj “a” ima 0 na mestu1, 1 na mestu 2 i 1 na mestu 4. Maska ima 1 na mestima 1, 2 i 4. Rezultat će imati 1 samo na prvom bitu jer tu jedan broj ima 1 a drugiima 0, dok na ostalim poljima oba broja imaju 1.
Masku možemo koristiti i da pomeramo bitove na levo i desno. Na primer, želimo da uključimo bit koji je deseti sa desne strane. Da ne bismo kucali ceo broj (0b1000000101, što je 517), uključićemo 10-bit na broju 0b101 na sledeći način:
a = 0b101 mask = (0b1 << 9) # pomeramo 1 za 9 mesta, doći će na 10-ti bit s desna zeljeni_broj = a ^ mask print zeljeni_broj
Nakon pokretanja programa kao rezultat dobićemo:
>> 517
Objašnjenje:^ je ekskluzivni OR. “Bit” će biti 1, ako je bilo koji bit 1, osim ako su oba 1. Kada smo uradili mask = (0b1 << 9), dobili smo da je mask = 0b1000000000 (= 517). Sada imamo:
mask = 0b1000000000 ^ a = 0b101
tj. rezultat je da će biti uključeni bitovi na prvom, trećem i desetom mestu.
Neke od programa nećete moći da pokrenete na našoj konzoli, zato Vam predlažemo da sa zvaničnog sajta www.python.org preuzmete portabilnu verziju. Instalacija je vrlo jednostavna. Mi Vam predažemo da odaberete verziju 3.3.5 koju smo i mi koristili.
Tekstualni editor u kome možete pisati svoje programe se pokreće preko programa koji se zove IDLE i automatski se instalira sa celim paketom. Novi program započinjete klikom na padajući meni "FILE" >> "NEW FILE". Možete ga pokrenuti pritiskom na dugme F5 na tastaturi.
Konzola koja se nalazi na sajtu omogućava rad sa većinom prezentovanog materijala, ali je naglašeno kada je potrebno preći na instaliranu konzolu.