Číslovky v technologii .NET

.NET poskytuje rozsah číselných celých čísel a primitiv s plovoucí desetinou čárkou a také:

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 0 -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 0 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 BigInteger typu úzce paralelně paralelně metody ostatních integrálních typů.

Typy s plovoucí desetinou čárkou

.NET obsahuje následující typy s plovoucí desetinou čárkou:

Typ Velikost (v bajtech) Přibližný rozsah Primitivní? Notes
System.Half 2 ±65504 No 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 No

, 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í desetinou čá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 můžete také pracovat s jednotlivými bity v DoubleSingle, a Half hodnotamiSystem.BitConverter. Struktura System.Decimal má své vlastní metody a Decimal.GetBitsDecimal(Int32[]), pro práci s jednotlivými bity desetinné hodnoty a také 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í. System.Decimal Použijte typ pro případy, kdy je vyžadována větší přesnost a zaokrouhlování chyb by se měly minimalizovat.

Poznámka:

Typ Decimal neodstraní potřebu zaokrouhlování. Místo toho minimalizuje chyby způsobené zaokrouhlení.

Complex

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 je bylo možné použít s hardwarem s podporou 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.

Viz také