Aktywne Wpisy
![jmuhha](https://wykop.pl/cdn/c0834752/9dc031852afc3f36a7321eca44c8536b774871001e4ad40d1656f540126e7fea,q60.jpg)
jmuhha +5463
![NaWykopWchodzeIronicznie](https://wykop.pl/cdn/c0834752/127531408b66cec56b681c86347d9d9cd267c73a8f383c9de853b7d7cf167c54,q60.jpg)
NaWykopWchodzeIronicznie +1435
Do wszystkich pisowców, kryptopisowców, symetrystów, freethinkerów, konfederatów i innych pokemonów spamujących od rana "PiS, PO = jedno zło", "Będzie to samo, tylko z drugiej strony", "Szczujnia zmieniła właściciela" i tak dalej:
Tak się fajnie składa, że całkiem dobrze pamiętam okres przed rządami PiS i to, jak wtedy wyglądała telewizja publiczna. Mogę was zapewnić, że praktycznie nikt wtedy nie posądzał TVP o bycie stacją stronniczą, propagandową, czy o bycie "PeOwską szczujnią", ani żadnym
Tak się fajnie składa, że całkiem dobrze pamiętam okres przed rządami PiS i to, jak wtedy wyglądała telewizja publiczna. Mogę was zapewnić, że praktycznie nikt wtedy nie posądzał TVP o bycie stacją stronniczą, propagandową, czy o bycie "PeOwską szczujnią", ani żadnym
Fragment kodu
byte[] data = new byte[10];
System.in.read(data);
System.out.println((char)data[0]);
In: asdf
Out: a
- dlaczego pojedyńczy znak z wejścia zajmuje akurat bajt? "co" konwertuje input na bity i w jaki sposób?
- rozumiem, że (char)data[0] to konwersja do szerszego typu ( byte -> char ) i starsze bity uzupełnia zerami?
#java #naukaprogramowania
Ty napisałeś
(char) data[0]
a chciałeś
*((char*)data)
i sprawdź co siedzi w data[1] czuje ze s zapisane w UTF-16
jaja sie zaczną jak zapytasz ile to zajmuje w pamieci
nie znam niestety mocno javy by Ci powiedziec co masz zmienić by dosatać ten drugi kod z C
Mnie interesuje dlaczego akurat metoda read ( która wczytuje kolejne bajty z wejścia i daje do kolejnych elementów tablicy ) traktuje jeden znak jak 1 bajt ( czyli jakie dokładnie kodowanie znaku widzi read i co jest odpowiedzialne za kodowanie znaku podanego na input ( tutaj konsola ide ) )
poza tym czuje że wkrada się tu lityle vs big endian
Jedyne co zauważyłem, że polskie znaki ( spoza 256znaków które są kodowane na 8 bitach ) już niepoprawnie obsługuje ( co sugerowałoby, że "coś" zakodowało wejście jakimś unicodem i polskie znaki już są na 16bitach ).
Komentarz usunięty przez autora Wpisu
System.in.read wczytuje bajty, nie ma tu zadnej konwersji
dokladnie to byte->int->char i jesli jest - to ten minus pozostaje (wiec nie tylko zerami)
@Lewo:
System operacyjny / kodowanie konsoli ide / czy dany system operacyjny koduje po swojemu a jvm konwertuje to do konkretnego kodowania?
1) taki Windows ma to w dupie i ma w konsoli inne kodowanie, zależne od wersji językowej
2) na systemach