| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 04.03.10 Prihlásený: 21.12.17 Príspevky: 38 Témy: 12 |
ahoj, potrebujem trochu porozumieť jave, takže som s ňou začal, ale mám tu taký problém, ktorému nechápem, hoci som ho skúšal vyriešiť už roznymi početnými operáciami. V zásade ide o to, že mám dva znaky Kód: char a = 'a'; char b = 'a';
príkaz Kód: System.out.println(a); mi vyhodí "a" ak však dám Kód: System.out.println(a+b); tak to vyhodí "714" skúšal som sa k tomuto číslu dopočítať nejak, ale vobec mi to nevychádza nijak raz. Neviete mi niekto poradiť, čo je to za výsledok? Ako už som pochopil, že ak chcem docieliť výsledok "aa", musím na to ísť takto Kód: System.out.println(""+a+b); (ešte nechápem prečo, ale to si zajtra dozistím). Ale hrozne ma štve, že nechápem odkiaľ sa vzal ten výsledok 714.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 18.08.2015 0:14 | |
|
Mne to dáva výsledok (presne podľa očakávania) 194 a netuším, kde sa ti tam berie tých 520 navyše.
|
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 18.08.2015 0:51 | |
|
194 je tak isto zaujimavy vysledok mne to dava 195. Inak k otazke. Java ma konvenciu ze ak scitavas 2 primitivne typy ako char, short a byte tak vysledkom je vzdy int. To neplati pri operacii a+=b napriklad : Kód: public static void main(String[] args) { char a = 'a', b = 'b'; a += b; System.out.print(a); }
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 04.03.10 Prihlásený: 21.12.17 Príspevky: 38 Témy: 12 |
Ehm, pardon, kecal som, tiež mi to dáva 194, ale pritom AA je decimálne 170, takže aj tak mi to nejde do hlavy. Aha, teraz som na to možno prišiel. Je to súčet ich ASCII hodnot... však? 97 krát 2 = 194! jupí
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 18.08.2015 10:07 | |
|
Áno, je to súčet ASCII hodnot. A toto Kód: ""+a+b znamená také "implicitné pretypovanie". Totiž, keď napíšeš a+b, kde a aj b sú typu char, tak si java povie "a a b sú primitívne typy char, výsledok bude int" (viz špecifikáciu jazyka) Citácia: Widening primitive conversion (§5.1.2) is applied to convert either or both operands as specified by the following rules: If either operand is of type double, the other is converted to double. Otherwise, if either operand is of type float, the other is converted to float. Otherwise, if either operand is of type long, the other is converted to long. Otherwise, both operands are converted to type int. Ak ale napíšeš ""+a+b, java si povie "prázdny string plus char plus char, výsledok bude určite string". Práve ten string na začiatku tomu dáva to "pretypovanie" na string.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 04.03.10 Prihlásený: 21.12.17 Príspevky: 38 Témy: 12 |
ahaaaa. díky mockrát všetkým trom ;-)
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Vypísanie znakov v C v Assembler, C, C++, Pascal, Java | 4 | 468 | 18.04.2012 20:48 Fico | | Nechapem ??? v AMD - Advanced Micro Devices | 2 | 710 | 19.04.2008 12:44 Jaro | | Vypisanie v PHP, ASP | 4 | 396 | 16.08.2010 9:23 Pades | | Ram- nechápem v Pamäte | 3 | 600 | 20.01.2009 13:19 Jaro | | nechapem uvodzovkam [ Choď na stránku: 1, 2 ] v PHP, ASP | 44 | 2060 | 17.05.2008 14:44 emer | | Q6600- nechapem?? v Intel - Integrated Electronics | 2 | 633 | 16.09.2008 7:59 Georgio99 | | icesword nechapem v Antivíry a antispywary | 0 | 702 | 12.01.2007 12:13 martingt89 | | nechapem delenie v ATI/AMD grafické karty | 6 | 1218 | 27.01.2010 3:28 foxXx | | delete char* v Assembler, C, C++, Pascal, Java | 4 | 413 | 17.11.2012 20:04 m4r14n | | Nechapem syntax v JavaScript, VBScript, Ajax | 3 | 641 | 02.02.2008 12:46 Hoomerr | | Nechapem týmto veciam v Pamäte | 20 | 995 | 02.01.2010 23:45 prandof | | dobre java navody a nova tema JAVA [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 35 | 5440 | 09.03.2009 17:14 tlacitko Enter | | Rozdiel medzi Java Standard a Java EE v Assembler, C, C++, Pascal, Java | 1 | 844 | 02.04.2014 12:41 XOLOO | | Vypisanie korenoveho adresara v PHP, ASP | 11 | 591 | 29.11.2007 20:38 vl4kn0 | | Vypisanie z databazy v PHP, ASP | 8 | 472 | 19.06.2009 11:55 jtomcik | | char pole do int v Assembler, C, C++, Pascal, Java | 0 | 356 | 19.01.2011 22:38 1daemon1 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|