Numerics&Operators Flashcards
Cela cisla - defaultni typ
kolik je min, pokud znam max
0 … int
0l … long
-(max)-1
napr. pro 127 je to -128
byte - pamet, max
1 byte
127
short - pamet, max
2 bytes
32 767
int - pamet, max
4 bytes
2 147 000 000 2 miliardy
long - pamet, max
8 bytes
9 223 000 000 000 000 000 (9.223 * 10^3*6) 9 trilionu
Desetinna cisla - defaultni typ
Dva typy zapisu
0 … double
0f … float
123.456
1.23456E2
float - pamet
4 bytes
double - pamet
8 bytes
signed integer - jak je ulozen
dvojkovy doplnek:
pro zaporne cislo odecti 1 a prevrat vsechny bity
Automaticke castovani
Lze jen z mensiho typu na vetsi
Napr. int to long, float to long
char - pamet, default, rozsah
2 bytes
\U0000
0 - 64 535
char - druhy zapisu (4)
‘X’
unicode (hex) \uXXXX
ascii (octal) \XXX
escape sequences \r \n \t \f ' " \
auto-boxing
auto-unboxing
auto-boxing: zabaleni int do Integer
auto-unboxing: rozbaleni Integer na int
caste pouziti ubira na vykonu!
vlastnosti wrapper classes (2)
konstanty (2)
jsou signed
jsou immutable
MIN_VALUE, MAX_VALUE
Metody wrapper classes:
tvorba z primitivu
tvorba ze stringu
rozbaleni do primitivu
Integer.valueOf(5);
Integer.parseInt(“5”);
integer.intValue();
prevedeni primitivu na String
String.valueOf(5);
Typ pouzivany tam, kde je vyzadovana desetinna presnost (finance)
Cim lze tu presnost zmatlat
Co pouzit misto toho
BigDecimal
new BigDecimal(x)
BigDecimal.valueOf(x)
BigDecimal - jak se dela scitani, odecitani, nasobeni, deleni, modulo
Rozbaleni do double
Konstanta pro male cislo
bd.add(other); subtract / multiply / divide / remainder
- primitivni operatory nefunguji!!!
bd.doubleValue()
BigDecimal.ONE
BigDecimal - nastaveni presnosti na dve des. mista s beznym zaokrouhlovanim
bd.setScale(2, RoundingMode.HALF_UP)
Deleni - operator, kdy neni celociselne
/
pokud je delitel (to druhe) desetinny
Co porovnava ==
hodnotu na stacku
tedy pro primitivy obsah
pro objekty reference
Automatic casting u ciselnych primitivu: poradi
byte > short > int > long > float > double
Typ vysledku u primitivnich cisel
pro typy mensi nez int je vysledek int (short + byte = int) - cisla v rovnici se prevedou pred operaci na int
pro ostatni je podle nejvetsiho typu (int + float = float)
Co udela operace byte 127+5
Compilation error, type overflow
Logicke operatory
short-circuit
long-circuit
Short-circuit: && || - prava strana se nemusi vyhodnotit
Long-circuit: & | ^(xor) - vyhodnoti se vse
jak spocitam kosinus, arckosinus, sinus, tangens
Math.cos(x), acos, sin, tan
jak spocitam e^x, x^y, odmocnina x
Math.exp(x)
Matc.pow(x, y)
Math.sqrt(x)
funkce pro minimum, maximum, zaokrouhleni cisla
Math.min()
Math.max()
Math.round()
Jak ziskam nahodne cislo, jaky bude jeho rozsah
Math.random() - bude mezi 0 vcetne a 1
Serad priority operatoru
bit shift, scitani, nasobeni, relacni (>, <), post&prefix
post&prefix
nasobeni
scitani
bit shift
relacni operatory
Serad prioridy operatoru
relacni, ternarni, rovnost, prirazeni, bitove &|^, logicke &|
relacni
rovnost
bitove
logicke
ternarni
prirazeni
Logicke operace nad byte
I or, & and, ^ xor
dam v binarnim kodu pod sebe a scitam
Byte shift - 3 druhy, jak funguji
> > signed right shift - posune a doplni zleva nuly nebo jednicky podle znamenka; x»_space; 3 = x / 2^3
«_space;signed left shift - posune a doplni zprava nuly; x «_space;3 = x * 2^3
> unsigned right shift - posune a doplni zleva nuly (-> pro zaporna cisla nefunguje dobre)
Zkracena forma pro x = x»>5
x»_space;>= 5
Jakeho typu je vysledek, pokud b je typu byte?
var result = +b;
int