This article has been localized into Czech by the community.
Integer - celá čísla
Počítače a čísla jdou ruku v ruce, takže při programování se velmi často setkáváte s prací s čísly v mnoha formách. Jedním z nejčastěji používaných typů v C# je celé číslo. Slovo "integer" je latinsky "celý", což dává smysl, protože celé číslo je číslo bez zlomkové části - celé číslo.
Int32 - výchozí celé číslo (integer)
Jak probereme za chvíli, C# nabízí mnoho různých typů celých čísel, ale ten, který pravděpodobně budete používat nejčastěji, je Int32 - 32bitové celé číslo. Lze jej deklarovat takto:
Int32 number;
Vzhledem k tomu, že toto je opravdu nejpoužívanější typ celého čísla v C#, existuje pro něj zkratka - můžete napsat jen "int" a C# automaticky pochopí, že máte na mysli Int32. Samozřejmě mu můžete také přiřadit hodnotu ve stejném příkazu, ve kterém jej deklarujete:
int number = 42;
Všimněte si rozdílu v psaní - Int32 odkazuje na třídu, takže začíná velkým I, zatímco int je klíčové slovo, takže začíná malým i.
Int32 je takzvané znaménkové celé číslo, které může obsahovat číslo v rozmezí od -2147483648 do 2147483647. Toto můžete ověřit přístupem ke konstantám Int32.MinValue a Int32.MaxValue. Pokud potřebujete větší čísla, nebo pokud už víte, že čísla, se kterými budete pracovat, nikdy nedosáhnou limitů celého čísla, můžete zvolit jiný typ.
Celočíselné typy (integer types)
Jak již bylo zmíněno, v C# existuje mnoho typů celých čísel. Ve skutečnosti je jich příliš mnoho, než abychom je zde všechny zmínili, ale zde jsou ty nejběžnější, se kterými se pravděpodobně čas od času setkáte:
- byte - neznaménkové celé číslo, které může obsahovat číslo mezi 0 a 255.
- short - 16bitové znaménkové celé číslo, které může obsahovat hodnotu mezi -32768 a 32767. Také známé pod svým formálním názvem Int16.
- long - 64bitové celé číslo, které může obsahovat hodnotu mezi -9223372036854775808 a 9223372036854775807. Také známé pod svým formálním názvem Int64.
Pokud potřebujete uchovat větší číslo, než umožňuje typ long, můžete místo toho použít ulong - je to neznaménkové celé číslo, které může obsahovat hodnotu až 18446744073709551615. Na druhou stranu, protože je to neznaménkové celé číslo, neumožňuje záporné hodnoty. Stejně tak můžete najít neznaménkové verze ostatních typů celých čísel, které fungují stejným způsobem, jako uint a ushort.
Matematika s celými čísly
Při práci s celými čísly a čísly obecně se můžete snažit provádět výpočty. To je velmi snadné ve většině programovacích jazyků, včetně C#, kde můžete používat všechny nejběžnější matematické operátory tak, jak jsou. Například můžete provést výpočet jako tento:
int a = 42;
int b = 8;
Console.WriteLine(a + b);
Na konzoli bude vytisknuto číslo 50. Všimněte si, jak jste mohli tento výpočet zvládnout bez jakýchkoli speciálních úprav - stačí specifikovat proměnné a matematický operátor plus a můžete pokračovat.
Totéž platí, pokud chcete použít jiné matematické operátory, a samozřejmě můžete používat i čísla, která nejsou již definována jako proměnná:
int a = 42;
int b = 8;
Console.WriteLine(200 - ((a + b) * 2));
Všimněte si dodatečné sady závorek - stejně jako v běžné matematice, budete muset zacházet s pořadím operací.
Celá čísla a dělení
Nyní, když jsme přidali, odečetli a vynásobili, pojďme si trochu promluvit o dělení. Zvažte následující příklad:
int a = 10;
int b = 3;
Console.WriteLine(a / b);
Pravděpodobně si to dokážete spočítat v hlavě, a tak víte, že výsledek by měl být 3,33333333333. Ale pokud příklad spustíte, uvidíte něco divného - výsledek je místo toho 3. Důvodem je, že pokud provádíte dělení mezi dvěma celými čísly, C# také vrátí celé číslo a protože celé číslo nemůže obsahovat žádné zlomky, výsledek je jen zaokrouhlen (v tomto případě dolů na 3). Pokud tedy chcete výsledek se zlomky, měli byste buď deklarovat jednu z proměnných jako proměnnou s plovoucí desetinnou čárkou (více o těch později) nebo jednu z nich za běhu přetypovat:
int a = 10;
int b = 3;
Console.WriteLine((float)a / b);
Konverze/přetypování typů
Pojďme si více popovídat o tom, jak můžete konvertovat z celého čísla a na celé číslo. Především C# umožňuje implicitní a explicitní konverze mezi různými typy celých čísel. Příklad implicitní konverze by mohl vypadat takto:
int a = 10;
long b = a;
Jinými slovy, pokud máte celé číslo, můžete jej považovat za long. To je možné, protože C# ví, že hodnota celého čísla se vejde do long. Na druhou stranu, opačně to nemusí být pravda - proto budete muset použít explicitní konverzi:
long a = 10;
int b = (int)a;
To je samozřejmě proto, abyste si byli vědomi, že děláte něco, co by potenciálně mohlo selhat - pokud máte hodnotu long, která překračuje kapacitu běžného celého čísla, máte problém!
Shrnutí
Práce s čísly, jako jsou celá čísla a čísla s plovoucí desetinnou čárkou, je něco, co budete dělat hodně v téměř každém programovacím úkolu. S vašimi novými znalostmi o celých číslech a jak s nimi pracovat můžeme plynule přejít na hodnoty s plovoucí desetinnou čárkou v dalším článku.