
sasquath_ [ Konsul ]
Problem z JAVA- prosze o pomoc.
witam , czy moglibysie wyjasnic co robi ten program. wiem jaki jest wynik tylko nie rozumiem na czym polegaja operatory (&). dzieki wielkie
public class Bits
static final short READY = 1;
static final short PROCESSING = 2;
static final short RECOVERING = 4;
static final short ERROR = 8;
static final String READY_STRING = "ready to receive requests";
static final String PROCESSING_STRING = "processing a request";
static final String RECOVERING_STRING = "error recovery in progress";
static final String ERROR_STRING = "unrecoverable error occurred";
public static void main(String[] args)
short status = 5;
if ((status & READY) == READY)
System.out.println(READY_STRING);
if ((status & PROCESSING) == PROCESSING)
System.out.println(PROCESSING_STRING);
if ((status & RECOVERING) == RECOVERING)
System.out.println(RECOVERING_STRING);
if ((status & ERROR) == ERROR)
System.out.println(ERROR_STRING);
draczeek [ Kjerofca Bąbofca ]
& w języku java to "iloczyn bitowy"
co to oznacza w przypadku tego programiku (chyba do obsługi komunikatów błędów) - nie wiem
niech ktoś mi lepiej wyjaśni co oznacza linia
public static void main(String[] args) ‹
jiser [ generał-major Zajcef ]
Operator & to iloczyn binarny. Każde zapytanie wycina ze zmiennej status poszczególne jej bity (poszczególne stałe są kolejnymi potęgami dwójki, a więc pojedyńczymi pozycjonowanymi bitami).
Ta klasa koduje kilka zmiennych binarnych w jedną zmienna typu short - przydatne np. przy optymalizacji transferu sieciowego. U wysyłającego kodujemy short jako sumę binarną (np. PROCESSING | RECOVERING), a u odbiorcy dekodujemy przez wywołanie (w tym przypadku) main.
donzoolo [ Senator ]
sasquath_-------->
if ((status & READY) == READY) ‹
System.out.println(READY_STRING);
›
Hmm, z tego co ja sie orientuje to operator % oznacza tyle co 'and' i jest operatorem bitowym, czyli w tym przypadku laczymy cyfry status = 0101 i ready = 0001 i porownujemy je poprzez podwojny = ze zmienna ready
draczeek--------->
definicja pola klasy Bits o nazwie main, ktora jest widoczna z zewnatrz, jest statyczna i nic nie zwraca
Przy czym mowie z gory ze pamietam dokladnie definicji i moge sie mylic :D
draczeek [ Kjerofca Bąbofca ]
donzoolo, jiser -> thx :)
jiser [ generał-major Zajcef ]
Linia public static void main(String[] args) to metoda specjalna dla JVM - metoda "uruchomieniowa". Jej obecność (i poprawność) umożliwia uruchomienie klasy jako programu (np. java Bits).
sasquath_ [ Konsul ]
dzieki za pomoc

sasquath_ [ Konsul ]
dzieki jeszcze raz wszystkim, mam nadzieje ze nie bede zakladal watku seryjnego;)

jiser [ generał-major Zajcef ]
Nie ma sprawy, jakbyś coś miał, to wal śmiało.