[ profa.smc @ 23.04.2014. 14:24 ] @
U pitanju je primer iz knjige, mada se u toj knjizi nigde ne pominju ovakve metode. Zanima me objasnjenje metoda: - pomeranje ulevo bitova - pakovanje podataka - raspakivanje podataka Sta znaci pakovanje kada se koristi << i raspakivanje sa >>> ? I kod raspakivanja ovo 0x0000000f? Evo zadatka, hvala unapred! Code: import java.util.*; public class Tren { /** * @param args the command line arguments */ public static void main(String[] args) { int pakovanoVreme; //pakovani podaci vremenskog trenutka int godina, mesec, dan, sat, minut; //ulaz sa tastature Scanner tastatura = new Scanner(System.in); //ucitavanje podataka vremenskog trenutka System.out.print("Unesite dan, mesec, godinu: "); dan = tastatura.nextInt(); mesec = tastatura.nextInt(); godina = tastatura.nextInt(); System.out.print("Unesite sat, minut: "); sat = tastatura.nextInt(); minut = tastatura.nextInt(); //Pomeranje ulevo bitova vremenskih podataka godina = godina << 20; mesec = mesec << 16; dan = dan << 11; sat = sat << 6; //pakovanje podataka vremenskog trenutka pakovanoVreme = godina | mesec | dan | sat | minut; //prikazivanje pakovanog sadrzaja na ekranu System.out.println("Pakovano vreme: " + pakovanoVreme); //raspakivanje podataka vremenskog trenutka godina = pakovanoVreme >>> 20; mesec = (pakovanoVreme >>> 16) & 0x0000000f; dan = (pakovanoVreme >>> 11) & 0x0000001f; sat = (pakovanoVreme >>> 6) & 0x0000001f; minut = pakovanoVreme & 0x0000003f; //prikazivanje raspakovanog sadrzaja na ekranu System.out.print("Raspakovano vreme: "); System.out.print(dan + " . " + mesec + " . " + godina); System.out.println(" " + sat + ":" + minut); } } |