Głównie do BookaYashee !
Witam,na poczatek dzieki za pomoc:
6.2
1/przesuniecia bitowe - zakumałem, reasumując jeśli mamy np. cyfrę 32768 co jest wynikiem 215 to: 215 <<2 == 217 = 131072 a 215 >>2 == 213 = 8192, czy dla liczby 128 która jest wynikiem 27 przesunięcie bitowe o 5 wyglądają tak: 27 <<5 == 212 = 4096 a 27 >>5 == 22 = 4.
I teraz co ciekawsze zakumałem przesunięcie bitowe z zerowaniem >>> tzn. dla liczb ujemnych wynikami >> i << są też liczby ujemne ale >>> jest liczbą dodatnio i to dośc ciekawą. Doszedłem do tego jak ją wyliczyć np. dla liczby "MINUS" -512 == 2^9 *(-1) działania:
<<3 == 2^12 *(-1) = -4096
3 == 2^6 *(-1) = -64
natomiast >>>3 wyliczam tak:3 == 2(32-3)-26 == 229-26 = 536870912 - 64 = 536870848 !!
wyjaśnienia: (32-3) od pełnego zakres 32bitów odejmuję tyle o ile mam przesunąć , w tym przypadku o 3 i zostaje nam 29 !!
26 jest wynikiem 29>>3 i to należy odjąć !
Może tylko pytanie jakby to wyglądało graficznie (01) na przykładzie 10 bitów dla liczby ujemniej -256 czyli 2^8 (*-1) bo tak:
2^8 = 0010000000
<<2 = 1000000000
2 = 0000100000
// PYTANIE:
a ja to rozumieć, cytuję: "sytuacja dla operatora >>> różni się tylko tym że najstarsze bity są uzupełniane bitem znaku, czyli dla liczb ujemnych jedynka a zerem dla dodatnich."?
2 = 0000111111 <- z powyższego wniskuję że tak
6.3
też skumałem, przykład dla innych liczb 11 i 14
1011 - 11
1110 - 14
1111 - 15 (suma "|")
1010 - 10 (ilosczyn "&")
6.4
i to skumałem, przykład dla tych samych liczb 11 i 14 wykorzystując operato r przypisania ^= i wykonując operację podwójnie
1011 - 11
1110 - 14
0101 - 5 - pojedyńczy XOR z przypisaniem daje liczbę 5 (11 ^= 14) = 5
1110 - ponowne wykonanie XOR liczną 14
1011 - 11 - wynik podwójnego przypisania XOR na liczbie 11 liczbą 14 daje wynik (11 = 14 = 14) = 11
I to pewnie na tyle by było, nie wiem czy do praktycznej nauki JAVY aż takie zgłębiane tematu, rozwiązywanie i analizowanie zadań jest potrzebne, nie wiem czy potem w praktyce programując będzie potrzeba posiadania takiej wiedzy ale jakoś mnie to wciągnęło i nic ze zeszło mi trochę, jest satysfakcja że się kuma o co chodzi Jeszcze raz dzięki za pomoc i czekam na wyjaśnienie jeszcze tego >>>3 jak powyżej pytałem (goto // PYTANIE)
Zaglądnąłem jeszcze teraz do Thinking in Java wyd.3 PL i kosmos, tutaj faktycznie jest to bardziej wyjaśnione ale już mnie czacha zaczyna boleć, chyb anie będę aż tak się wgłebiał w ten temat, może kiedyś jak zajdzie takowa konieczność, może jak skończę Pratyczny kurs M. Lisa to przelecę wówczas Think. IN Java 3 pl, zobaczę
Dzięki jeszcze raz
##################
były "nie_kasowac_please"