Besplatni Java kurs - 24. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.
Za pomeranje bitova ulevo u Javi se koristi operator za pomeranje bitova ulevo.
<< Operator za pomeranje bitova ulevo
Operator za pomeranje bitova ulevo služi za pomeranje svih bitova nekog broja za određeni broj mesta ulevo. Npr:
int broj = 1 << 3;
Promenljiva broj će posle izvršenja naredbe imati vrednost 8. To je zato što u binarnom obliku, ako zanemarimo prve 24 nule, broj 1 izgleda ovako:
0000_0001
Pošto je broj 1 celobrojni literal tipa int, u stvari ima 32 bita, ali sam zbog čitljivosti ostavio samo krajnjih osam bitova. Jer 0000_0001 je mnogo preglednije nego 00000000000000000000000000000001. A za ovaj primer nam prva 24 bita nije bitno.
Dalje, deklarisao sam promenljivu tipa int kojoj sam dodelio vrednost broja 1 kod kog su bitovi pomereni za 3 mesta ulevo pomoću operatora <<. Posle pomeranja rezultat izgleda ovako:
0000_1000
Ponovo sam zanemario prva 24 bita. Kao što se vidi, jedinica se pomerila za 3 mesta ulevo, a sa desne strane su dopisane nule. Upravo tako radi operator za pomeranje bitova ulevo.
Bitna napomena: tokom pomeranja bitova ulevo gubi se onoliko krajnih levih bitova za koliko se mesta vrši pomeranje. Tačnije, to se dešava kod operanada tipa int i long. Operandi tipa byte i short se automatski konvertuju u tip int, pa se zapravo vrednost bitova sačuvaju sem ako se ne pomere toliko da „iskoče” i iz int tipa. Stvari se dodato komplikuju kod označenih brojeva ako se pomeranjem bitova promeni vrednost najvišeg bita u kome se čuva podatak o znaku (da li je broj pozitivan ili negativan). Zato treba biti oprezan kada se pomeranjem bitova približava granici tipa.
Pročitaj i nastavak:
Besplatni Java kurs - 25. deo - Operatori za pomeranje bitova udesno
No comments:
Post a Comment