Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
.NET poskytuje různé číselné celé typy a primitivní typy pro čísla s plovoucí desetinnou čárkou, jakož i:
- System.Half, které představuje polovičně přesné číslo s plovoucí desetinnou čárkou.
- System.Decimal, který představuje desetinné číslo ve formátu s plovoucí čárkou.
- System.Numerics.BigInteger, což je celočíselný typ bez teoretické horní nebo dolní hranice.
- System.Numerics.Complex, který představuje komplexní čísla.
- Sada typů s podporou SIMD v oboru názvů System.Numerics.
Celočíselné typy
.NET podporuje podepsané i nepodepsané 8bitové, 16bitové, 32bitové, 64bitové a 128bitové celočíselné typy uvedené v následujících tabulkách.
Typy podepsaných celých čísel
Typ | Velikost (v bajtech) | Minimální hodnota | Maximální hodnota |
---|---|---|---|
System.Int16 | 2 | -32,768 | 32 767 |
System.Int32 | 4 | -2,147,483,648 | 2,147,483,647 |
System.Int64 | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
System.Int128 | 16 | −170 141 183 460 469 231 731 687 303 715 884 105 728 | 170,141,183,460,469,231,731,687,303,715,884,105,727 |
System.SByte | 1 | -128 | 127 |
System.IntPtr (v 32bitovém procesu) | 4 | -2,147,483,648 | 2,147,483,647 |
System.IntPtr (v 64bitovém procesu) | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Celočíselné typy bez znaménka
Typ | Velikost (v bajtech) | Minimální hodnota | Maximální hodnota |
---|---|---|---|
System.Byte | 1 | 0 | 255 |
System.UInt16 | 2 | 0 | 65,535 |
System.UInt32 | 4 | 0 | 4,294,967,295 |
System.UInt64 | 8 | 0 | 18,446,744,073,709,551,615 |
System.UInt128 | 16 | 0 | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
System.UIntPtr (v 32bitovém procesu) | 4 | 0 | 4,294,967,295 |
System.UIntPtr (v 64bitovém procesu) | 8 | 0 | 18,446,744,073,709,551,615 |
Každý celočíselný typ podporuje sadu standardních aritmetických operátorů. Třída System.Math poskytuje metody pro širší sadu matematických funkcí.
Pomocí třídy můžete také pracovat s jednotlivými bity v celočíselné hodnotě System.BitConverter .
Poznámka:
Nepodepsané celočíselné typy nejsou kompatibilní se specifikací CLS. Další informace naleznete v tématu Jazyková nezávislost a komponenty nezávislé na jazyce.
BigInteger
Struktura System.Numerics.BigInteger je neměnný typ, který představuje libovolně velké celé číslo, jehož hodnota teoreticky nemá žádné horní nebo dolní hranice. Metody typu BigInteger úzce paralelně kopírují metody ostatních integrálních typů.
Datové typy s plovoucí tečkou
.NET obsahuje následující typy s plovoucí desetinou čárkou:
Typ | Velikost (v bajtech) | Přibližný rozsah | Primitivní? | Poznámky |
---|---|---|---|---|
System.Half | 2 | ±65504 | Ne | Představeno v .NET 5 |
System.Single | 4 | ±3,4 x 1038 | Ano | |
System.Double | 8 | ±1,7 × 10308 | Ano | |
System.Decimal | 16 | ±7,9228 x 1028 | Ne |
, HalfSinglea Double typy podporují speciální hodnoty, které představují nečíslo a nekonečno. Double Například typ poskytuje následující hodnoty: Double.NaN, Double.NegativeInfinitya Double.PositiveInfinity. K otestování těchto speciálních hodnot použijete metodu Double.IsNaN, Double.IsInfinity, Double.IsPositiveInfinitya Double.IsNegativeInfinity metody.
Každý typ s plovoucí čárkou podporuje sadu standardních aritmetických operátorů. Třída System.Math poskytuje metody pro širší sadu matematických funkcí. .NET Core 2.0 a novější obsahuje System.MathF třídu, která poskytuje metody, které přijímají argumenty Single typu.
Pomocí třídy Double můžete také pracovat s jednotlivými bity v hodnotách Single, Half, a System.BitConverter. Struktura System.Decimal má své vlastní metody, Decimal.GetBits a Decimal(Int32[]), pro práci s jednotlivými bity desetinné hodnoty, stejně jako vlastní sadu metod pro provádění některých dalších matematických operací.
Double, Singlea Half typy jsou určeny k použití pro hodnoty, které jsou podle jejich povahy nepřesné (například vzdálenost mezi dvěma hvězdičky) a pro aplikace, ve kterých není vyžadována vysoká míra přesnosti a malá chyba zaokrouhlování. Použijte typ System.Decimal pro případy, kdy je vyžadována větší přesnost a zaokrouhlování chyb by se mělo minimalizovat.
Poznámka:
Typ Decimal neodstraní potřebu zaokrouhlování. Minimalizuje chyby způsobené zaokrouhlováním.
Složitý
Struktura System.Numerics.Complex představuje komplexní číslo, tj. číslo s reálnou číselnou částí a imaginární číselnou částí. Podporuje standardní sadu aritmetických, porovnávaných, rovnosti, explicitních a implicitních konverzních operátorů a také matematických, algebraických a trigonometrických metod.
Typy s povoleným SIMD
Obor System.Numerics názvů obsahuje sadu typů s podporou .NET SIMD. Operace SIMD (Single Instruction Multiple Data) je možné paralelizovat na úrovni hardwaru. To zvyšuje propustnost vektorizovaných výpočtů, které jsou běžné v matematických, vědeckých a grafických aplikacích.
Typy s podporou .NET SIMD zahrnují následující:
Vector2, Vector3a Vector4 typy, které představují vektory s hodnotami 2, 3 a 4Single.
Dva typy matice, Matrix3x2které představují 3x2 matice, a Matrix4x4, který představuje 4x4 matice.
Typ Plane , který představuje rovinu v trojrozměrném prostoru.
Typ Quaternion , který představuje vektor, který se používá ke kódování trojrozměrných fyzických otočení.
Typ Vector<T> , který představuje vektor zadaného číselného typu a poskytuje širokou sadu operátorů, které využívají podporu SIMD. Počet Vector<T> instancí je pevný, ale jeho hodnota Vector<T>.Count závisí na procesoru počítače, na kterém se kód spouští.
Poznámka:
Typ Vector<T> je součástí .NET Core a .NET 5 nebo novější, ale ne rozhraní .NET Framework. Pokud používáte rozhraní .NET Framework, nainstalujte balíček NuGet System.Numerics.Vectors , abyste získali přístup k tomuto typu.
Typy s podporou SIMD jsou implementovány takovým způsobem, aby bylo možné je použít s hardwarem bez podpory SIMD nebo kompilátory JIT. Aby bylo možné využít instrukce SIMD, musí být vaše 64bitové aplikace spuštěny modulem runtime, který používá kompilátor RyuJIT, který je součástí .NET Core a v rozhraní .NET Framework 4.6 a novějších verzích. Přidává podporu SIMD při cílení na 64bitové procesory.
Další informace najdete v tématu Použití číselných typů akcelerovaných pomocí SIMD.